2012-07-18 64 views
0

嗨,我有一個XML字符串SQL 2008 OPENXML,無法分析NTEXT數據

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

把一個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>' 
+0

非常感謝它的工作。 – sparklzrocks 2012-07-18 06:42:08

+0

謝謝,我正面臨的問題是我發送XML字符串作爲參數存儲過程。 如果我將**「N」**連接到參數** @ XmlQue **並將它傳遞給過程,則會引發錯誤。 如果我在存儲過程中 SET @ XmlQue = N「做這樣的」 + @ XmlQue 它不工作 的唯一途徑是作品當我寫 SET @ XmlQue = N'<?XML版本=「1.0」encoding =「UTF-16」?>' 我該如何追加**「N」**與變量@XmlQue 請幫忙? – sparklzrocks 2012-07-18 07:19:29

+0

請將此標記爲已回答並打開一個新問題。在新問題中,請提供更多詳細信息,例如您將字符串傳遞給存儲過程的代碼。這將有所幫助。 :) – Matt 2012-07-18 07:53:31