我有一个xml字符串
DECLARE @XmlQue NTEXT
SET @XmlQue='<?xml version="1.0" encoding="UTF-16"?><Template TId="1">
<QueInfo QId="1" QDetails="Are you " IsYes="Yes" IsNo="No" Eligibleyes="Y" Eligibleno="N"/>
<QueInfo QId="2" QDetails=" राज्य " IsYes="Yes" IsNo="No" Eligibleyes="Y" Eligibleno="N"/>
</Template>'
我想将数据插入到某些列中具有NTEXT数据类型的表中
我写了以下插入语句。
INSERT INTO ExpertSystem_Master
SELECT QIdx,@TemplateId,QDetailsx,IsYesx,IsNox,Eligibleyesx,Eligiblenox,0,0
FROM
OPENXML(@XmlHdl,'/Template/QueInfo',1)
WITH
( QIdx INT '@QId',
QDetailsx Ntext '@QDetails',
IsYesx Ntext '@IsYes',
IsNox Ntext '@IsNo',
Eligibleyesx CHAR(1) '@Eligibleyes',
Eligiblenox CHAR(1) '@Eligibleno'
)
数据已插入表中,但问题不在于设置“राज्य”,而是将数据插入“?????”
当我尝试直接插入数据时,它被正确插入,问题在于用OPENXML解析它。
任何人都可以帮忙吗?我错过了什么吗?
提前致谢。
答案 0 :(得分:0)
在你的文字之前加上一个N ..例如:
SET @XmlQue=N'<?xml version="1.0" encoding="UTF-16"?><Template TId="1">
<QueInfo QId="1" QDetails="Are you " IsYes="Yes" IsNo="No" Eligibleyes="Y" Eligibleno="N"/>
<QueInfo QId="2" QDetails=" राज्य " IsYes="Yes" IsNo="No" Eligibleyes="Y" Eligibleno="N"/>
</Template>'