使用SQL查询更新XMLTYPE列

时间:2014-10-08 07:42:30

标签: sql xml oracle11g

我必须更新下表中的limit_xml列:

TEST:
id        NUMBER(32);
limit_xml XMLTYPE;

UPDATE test
SET limit_xml = '<XML>'
WHERE id = 20;

我不打算替换XML中的某些部分,而是替换完整的XML。

但是上面的sql不起作用。我认为这是由于XML内容很大。 XML包含200多个字符。

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:0)

SQL> create table xml_tab(xml XMLType);

Table created.

SQL> insert into xml_tab values ('
  2  <Common>
  3   <Field>
  4    <Label>Begin Date </Label>
  5    <Value Name="BEG_DATE">02.05.2006</Value>
  6    </Field>
  7   <Field>
  8    <Label>End Date</Label>
  9    <Value Name="END_DATE">01.06.2016</Value>
 10   </Field>
 11   <Field>
 12    <Label>type</Label>
 13    <Value Name="TYPE">Example</Value>
 14   </Field>
 15  </Common>
 16  ');

1 row created.

SQL> UPDATE xml_taB
  2     SET xml = updateXML(xml,
  3                         '/DATA/Common/Field/Value[@Name="END_DATE"]/text()',
  4                         '02.06.2017');

1 row updated.