如果我在查询中预先定义了我想要的更改,但我希望用户提供自己的输入,以便他可以根据用户输入更改任何特定的XML列。
我的问题是它给了我错误,而且它没有识别我声明的变量NEWADD。这是我的代码:
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中调用变量?提前谢谢。
答案 0 :(得分:2)
为了完整起见,我在这里粘贴给你的答案elsewhere:
您应该在XMLQUERY字符串中引用该变量,与其中的其他变量$STUDINFO
和$test
类似。使用PASSING
子句定义该变量。
... xmlquery('copy $test := $STUDINFO modify do
replace value of $test/Student/Address
with $foo return $test'
passing NEWADD as "foo"
)...