0

嗨,我有一个 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 解析它时。

任何人都可以帮忙吗?我错过了什么吗?

提前致谢。

4

1 回答 1

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>' 
于 2012-07-18T06:33:03.233 回答