DECLARE xml然后INSERT INTO表

时间:2015-02-24 15:16:23

标签: sql xml db2

我有一个应用程序,它将xml发送到我的db2存储过程 在SQL Server中,存储过程的编写如下:

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

但是收到错误消息:“游标值构造函数的例程,复合SQL语句或参数列表中不支持参数或SQL变量”STARTWITHDIAGNOSISNUMBERS“的数据类型。”

我无法找到如何翻译INSERT INTO。

我非常感谢任何帮助: - )

1 个答案:

答案 0 :(得分:0)

使用XML数据类型有一些限制,如described in the manual。确保您拥有适用于您的版本的最新修订包,并尝试将您的代码编写为存储过程而不是简单的复合SQL语句(a.k.a.匿名块)。

要以表格形式从XML文档中提取数据,您可以使用手册中的XMLTABLE function - 检查示例。

PS。使用以SQL Server为中心的方法(如广泛使用临时表)不一定是在DB2中完成任务的最有效方法。