我有一个应用程序,它将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。
我非常感谢任何帮助: - )
答案 0 :(得分:0)
使用XML数据类型有一些限制,如described in the manual。确保您拥有适用于您的版本的最新修订包,并尝试将您的代码编写为存储过程而不是简单的复合SQL语句(a.k.a.匿名块)。
要以表格形式从XML文档中提取数据,您可以使用手册中的XMLTABLE function - 检查示例。
PS。使用以SQL Server为中心的方法(如广泛使用临时表)不一定是在DB2中完成任务的最有效方法。