更新Oracle中的xml标记 - 加入另一个表

时间:2017-08-18 04:13:53

标签: sql xml oracle xpath sql-update

我发现以下链接非常有用,但我想进一步询问它

Update xml tag in a CLOB column in Oracle

在上一篇文章中使用相同的数据:

create table tmp_tab_noemail_test (sce_msg clob);
insert into tmp_tab_noemail_test values (
'<Energy xmlns="http://euroconsumers.org/notifications/2009/01/notification">    
    <Gender>M</Gender>
    <FirstName>MAR</FirstName>
    <Name>VAN HALL</Name>
    <Email/><Telephone>000000000</Telephone>
    <InsertDate>2013-10-09</InsertDate>
</Energy>');

update tmp_tab_noemail_test p1 
set p1.sce_msg = updatexml(xmltype(p1.sce_msg),
  '/Energy/InsertDate/text()','Not Valid',
  'xmlns="http://euroconsumers.org/notifications/2009/01/notification"').getClobVal();

现在,如果我想查看另一个表帐户,该怎么办?它有列:acct_numnamedate_of_birth

如何更新InsertDate tag value = Account.date_of_birth where Name tag value = Account.name

有可能吗?谢谢!

1 个答案:

答案 0 :(得分:0)

如果我正确理解了这个问题,那么您可以从Name中提取rowidtmp_tab_noemail_test,将其与Account表连接,获取更新的xml并使用{{1 (通过rowid)目标文件夹中的更新 -

merge