0
XMLデータを持つ列があります。XMLのテキストを置換または更新する
SELECT roll_id, EXTRACT (xml_data, '/root/xmldata/empid') AS empid
FROM employee_data
WHERE roll_id IN (1, 2)
結果:私は更新クエリの下に実行する場合
roll_id empid
1 <empid>A11</empid>
2 <empid/>
、それはそれはroll_id 2に影響を与えないだけ1. roll_id更新誰もが、私はroll_id 2を更新することができますどのようにお勧めすることはできますか?私はroll_idの代わりに実行する必要がありますか?
UPDATE employee_data
SET xml_data =
UPDATEXML (xml_data
,'/root/xmldata/empid/text()'
,'111')
WHERE roll_id IN (1,2)
パラメータに111の値を渡すにはどうすればよいですか?たとえば、コードで111の代わりに入力パラメータとしてP_IDを指定したいとします。 :return( ノード$ iの値を "{@P_ID}"に置き換えます ) – user1630575
私は最初の方法を試しました。それはempidノード全体をクリアするだけです。私はストアドプロシージャを介して値を渡すので、パラメータとして111を渡すことができる方法はありますか? – user1630575
'xml_docを" doc "、111を" id "として渡し、' 'copy $ d:=を置き換えます。ノード$ iの値を "111"に置き換えます ' - >'ノード$ iの値を$ idに置き換えます ' –