2015-02-24 107 views
0

我有一個應用全髖關節置換髮送XML到我的DB2存儲過程 在SQL Server存儲過程是這樣寫的:DECLARE XML,然後INSERT INTO表

DECLARE @startWithDiagnosisNumbers xml 
SELECT @startWithDiagnosisNumbers = N'<Ids><id>G43</id><id>G44</id></Ids>' 

DECLARE @TEMP_CXP_DiagnosisNumbers TABLE (ID nvarchar(50)) 
INSERT INTO @TEMP_CXP_DiagnosisNumbers (ID) 
SELECT ParamValues.ID.value('.','NVARCHAR(50)') 
FROM @startWithDiagnosisNumbers .nodes('/Ids/id') as ParamValues(ID) 

如何翻譯這個到DB2 ? 我已經試過這樣:

BEGIN 
    DECLARE startWithDiagnosisNumbers XML; 
END 

,但得到的錯誤信息:STARTWITHDIAGNOSISNUMBERS」「爲參數或SQL變量的數據類型」中的常規,複合SQL語句或參數光標值構造的列表,不支持。 「

而我無法找到如何翻譯INSERT INTO。

我非常感謝:-)

+0

什麼是DB2版本和平臺? – mustaccio 2015-02-24 16:27:34

+0

db2版本9.7 plattform窗口 – 2015-02-25 09:01:13

回答

0

任何幫助,有關於使用XML數據類型的一些限制,如described in the manual。確保你的版本有最新的補丁包,並嘗試將你的代碼編寫爲存儲過程,而不是簡單的複合SQL語句(又名匿名塊)。

要從表格中提取XML文檔中的數據,您可以使用XMLTABLE function - 檢查手冊中的示例。

PS。使用以SQL Server爲中心的方法(如廣泛使用臨時表)不一定是在DB2中完成任務的最有效方式。