DB2存储过程通过用户输入更新XML列
如果我在查询中预先定义所需的更改,但我希望用户提供自己的输入,以便他可以根据用户输入更改任何特定的XML列,那么我的代码就可以工作 我的问题是它给了我错误,并且它没有识别我声明的变量NEWADD。这是我的密码:DB2存储过程通过用户输入更新XML列,xml,stored-procedures,db2,Xml,Stored Procedures,Db2,如果我在查询中预先定义所需的更改,但我希望用户提供自己的输入,以便他可以根据用户输入更改任何特定的XML列,那么我的代码就可以工作 我的问题是它给了我错误,并且它没有识别我声明的变量NEWADD。这是我的密码: CREATE PROCEDURE MNI_UPDATE_STUD_ADD( in IDNUMBER CHAR(8), in NEWADD VARCHAR(50)) DYNAMIC RESUL
CREATE PROCEDURE MNI_UPDATE_STUD_ADD( in IDNUMBER CHAR(8),
in NEWADD VARCHAR(50))
DYNAMIC RESULT SETS 1
LANGUAGE SQL
begin
UPDATE XML_STUD
SET STUDINFO = xmlquery('copy $test := $STUDINFO modify do
replace value of $test/Student/Address with NEWADD
return $test')
WHERE IDNO = IDNUMBER;
end
我希望用户可以在变量NEWADD下输入他想要的任何世界,我对变量IDNUMBER没有问题,它工作正常,我只发布了NEWADD。有没有办法在xmlquery中调用变量?提前感谢。为了完整起见,我将提供给您的答案粘贴在这里: 您应该参考XMLQUERY字符串中的变量,类似于其中的其他变量,
$STUDINFO
和$test
。使用PASSING
子句定义该变量
... xmlquery('copy $test := $STUDINFO modify do
replace value of $test/Student/Address
with $foo return $test'
passing NEWADD as "foo"
)...
是的,谢谢,我已经拿到了。但这将被添加到我收集的信息中。