【问题标题】:DB2 Stored Procedure Update XML column through user inputDB2 存储过程通过用户输入更新 XML 列
【发布时间】:2013-10-11 07:22:25
【问题描述】:

如果我要在查询中预先定义我想要的更改,我的代码就可以工作,但我希望用户提供自己的输入,以便他可以根据用户输入更改任何特定的 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 中调用变量?提前致谢。

【问题讨论】:

    标签: xml stored-procedures db2


    【解决方案1】:

    为了完整起见,我在此处粘贴提供给您的答案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"
    )...
    

    【讨论】:

    • 是的,谢谢,我已经知道了。但这将被添加到我的信息集合中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-30
    • 2016-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多