2014-10-08 54 views
0

我要更新下表中的列limit_xml XMLTYPE更新的列:使用SQL查询

TEST: 
id  NUMBER(32); 
limit_xml XMLTYPE; 

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

我不打算在XML,但完整的XML更换某些零件。

但上述sql不起作用。我认为这是由于大量的XML内容。 XML包含超过200个字符。

有没有办法做到这一点?

+0

@Alex Poole - 嗨Alex。你能在这里协助我吗? – 2014-10-08 09:24:25

回答

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

谢谢拉利特。但正如我提到的,我想要替换完整的XML而不是它的某些部分。 – 2014-10-08 07:52:26

+0

你的意思是更新整个XML文档? http://docs.oracle.com/cd/B28359_01/appdev.111/b28369/xdb04cre.htm#i1024833 – 2014-10-08 08:49:21