2013-10-04 56 views
1

我的代碼在我想在查詢中預先定義所需的更改時起作用,但我希望用戶提供自己的輸入以便他可以根據用戶更改任何特定的XML列輸入。DB2存儲過程通過用戶輸入更新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,我與它正在罰款我唯一的問題NEWADD變量的ID號沒有問題。有沒有辦法在xmlquery中調用一個變量?提前致謝。

回答

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" 
)... 
+0

是的,謝謝我已經知道了。但是這將被添加到我的信息收集。 –