かなり単純な質問-二重引用符を使用したい属性があります。それらをエスケープするにはどうすればよいですか?私はもう試した
- 「」
- 「」
- \\ "
そして、@ xml変数をxmlタイプとそれらすべてのvarchar(max)の両方にしました。
declare @xml xml --(or varchar(max) tried both)
set @xml = '<transaction><item value="hi "mom" lol"
ItemId="106" ItemType="2" instanceId="215923801" dataSetId="1" /></transaction>'
declare @xh int
exec sp_xml_preparedocument @xh OUTPUT, @xml
insert into @commits --I declare the table, just removed it for brevity
select
x.*
from openxml(@xh,'/transaction/item')
WITH (
dataItemId int,
dataItemType int,
instanceId int,
dataSetId int,
value varchar(max)
) x
1
ちなみに...ここではopenxmlを使用する理由(AFAIK)はありません...これは「2005より前」のものです。xml値がある場合は、それを直接xmlとして使用します。
—
Marc Gravell
マーク-ありがとう。私はopenxmlがカーリーアポストロフィでつぶれていた別のバグがありました。
—
トムリッター