SQL 2008 OPENXML,无法解析NTEXT数据

时间:2012-07-18 06:30:54

标签: sql-server-2008 openxml

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

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

提前致谢。

1 个答案:

答案 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>'