Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Помогите с DBMS_XMLSTORE  [new]
Леонид33
Member

Откуда:
Сообщений: 165
Здравствуйте, вот такая проблема: есть XML типа:
'<POSTABLE><POSROW><POSCODE>11</POSCODE>'<SSS><DESCRIPTION>Office</DESCRIPTION>
<CRIPTION>erty</CRIPTION></SSS></POSROW><POSROW><POSCODE>12</POSCODE>' ||
'<SSS><DESCRIPTION>Home</DESCRIPTION><CRIPTION>erty</CRIPTION></SSS></POSROW>' ||
'<POSROW><POSCODE>21</POSCODE><SSS><DESCRIPTION>Inpatient Hospital</DESCRIPTION><CRIPTION>erty</CRIPTION></SSS>
</POSROW>' || и т.д. ,
пихаю его в CLOB потом:
declare
v_insCtx DBMS_XMLSave.ctxType;
v_rows number;
v_xmldoc CLOB;
begin
select xmldoc into v_xmldoc from posxml;
v_insCtx := DBMS_XMLSave.newContext('POS');
DBMS_XMLSave.setRowTag(v_insCtx,'POSROW');
v_rows := DBMS_XMLSave.insertXML(v_insCtx,v_xmldoc);
end;
при этом пишется тока поле POSCODE.

делаю дальше это(как в примере):
declare
updCtx DBMS_XMLSave.ctxType;

v_rows number;
v_xmldoc CLOB;
begin
select xmldoc into v_xmldoc from posxml;
updCtx := DBMS_XMLSave.newContext('POS');

DBMS_XMLSave.setRowTag(updCtx,'SSS');
DBMS_XMLSave.clearKeyColumnList(updCtx);
DBMS_XMLSave.clearUpdateColumnList(updCtx);
DBMS_XMLSave.setKeyColumn(updCtx,'POSCODE');

DBMS_XMLSave.setUpdateColumn(updCtx,'DESCRIPTION');
XMLSave.setUpdateColumn(updCtx,'CRIPTION');

v_rows := DBMS_XMLSave.updateXML(updCtx,v_xmldoc); -------

DBMS_XMLSave.closeContext(updCtx);
end;

но тут ничего не происходит,
но если заменить строку v_rows := DBMS_XMLSave.updateXML(updCtx,v_xmldoc);
на v_rows := DBMS_XMLSave.insertXML(updCtx,v_xmldoc);
то поля он инсертит, вместо того, чтоб апдейтить по ключу POSCODE,
пробовал по разному, но так ничего и не получилось....
подскажите, что неправильно делаю, а то уже 3-й день...
8 фев 07, 17:28    [3757787]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с DBMS_XMLSTORE  [new]
Igor Morenko
Member

Откуда: Tula
Сообщений: 308
Версия какая?
С первого взгляда должно все работать, единственное что может быть - это разные названия полей в таблице и названия тэгов в XML.
Пробуй, должно все получиться. Проблем с XMLSAVE у меня не было.
8 фев 07, 17:46    [3757919]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с DBMS_XMLSTORE  [new]
Леонид33
Member

Откуда:
Сообщений: 165
версия оркла 10g, поля точно теже, ведь когда меняю с DBMS_XMLSave.updateXML на DBMS_XMLSave.insertXML, то начинает инсертить... а с апдейтом не пашет... мож какого модуля нехватает?
8 фев 07, 17:52    [3757970]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с DBMS_XMLSTORE  [new]
Леонид33
Member

Откуда:
Сообщений: 165
тут мысль мелькнула, мож кто посоветуует, этот апдейт не пашет тока на многоууровневом XML, на одноровневом пахал, а инсерт пашет везде, мож это глюк самой функции? мож попробовать другую версию? тока где взять , чтоб подошла под 10g для винды?
8 фев 07, 22:00    [3758826]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с DBMS_XMLSAVE  [new]
Леонид33
Member

Откуда:
Сообщений: 165
Неужели никто не знает? подскажите хоть литературу, а то что нашол в инете - не помогает...
9 фев 07, 09:13    [3759495]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить