2015-02-24 105 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中完成任务的最有效方式。