2013-05-28 3 views
-1

У меня есть столбец CLOB, который содержит большое количество XML. Я хочу, чтобы добавить новый атрибут в этом XML, как этот атрибут:Обновление CLOB XML в Oracle

<name>me</name> 

Я попытался с помощью UpdateXML, но я не получаю это правильно.

+1

Можете ли вы добавить пример того, что вы пробовали? –

+1

Добро пожаловать в SO. Пожалуйста, прочтите это: http://stackoverflow.com/questions/how-to-ask – OldProgrammer

ответ

2

CLOB преобразуется в XMLType с помощью XMLType() и XMLType преобразуется в CLOB с помощью to_clob. Ниже приведен пример.

create table table_with_clob (myclob clob); 

insert into table_with_clob values ('<mytag><subtag>hello world</subtag></mytag>'); 

UPDATE table_with_clob SET myclob = 
    to_clob(INSERTCHILDXML(xmltype(myclob), 
    '/mytag', 'subtag', 
    XMLType('<subtag>another</subtag>'))); 

select * from table_with_clob; 

Выход

myclob 
------ 
<mytag><subtag>hello world</subtag><subtag>another</subtag></mytag> 

Хотя я думаю, что это не очень эффективно, и вы могли бы лучше преобразовать столбец XMLType и работать с ним.