powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Парсинг XML, проблема
19 сообщений из 69, страница 3 из 3
Парсинг XML, проблема
    #39500174
jukka413
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

боюсь, это выше моих сил
Вот здесь otvet_s прописывается в таблицу
Код: plsql
1.
2.
3.
4.
     update usb_gis_reqstest q
     set q.outp = XMLTYPE(otvet)
     where q.type = req_id_new;
     commit;


Да и как может измениться ответ от другой функции при смене цикла на селект? Ответ всегда один и тот же, схема тестовая.
Непонятно О_о
...
Рейтинг: 0 / 0
Парсинг XML, проблема
    #39500225
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jukka413,

Код: plsql
1.
2.
3.
4.
5.
otvet_s:=XMLTYPE(otvet);
     
     update usb_gis_reqstest q
     set q.outp =XMLTYPE(otvet)
     where q.type = req_id_new;



И где тут
jukka413otvet_s прописывается в таблицу?
...
Рейтинг: 0 / 0
Парсинг XML, проблема
    #39500232
jukka413
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

Извиняюсь, если полностью, то

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
insert into usb_giszhkh_reqstest values (req_id_new,zapros, null);
     commit;
     otvet      :=  USB$PAY_GIS_ZHKH_test(zapros);
     otvet_s:=XMLTYPE(otvet);
     
     update usb_giszhkh_reqstest q
     set q.outp = XMLTYPE(otvet)
     where q.type = req_id_new;
     commit;



Если прописать set q.outp = otvet_s - результат тот же
...
Рейтинг: 0 / 0
Парсинг XML, проблема
    #39500244
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jukka413,

Что значит "тот же"?

Переделай запрос на select .. from usb_giszhkh_reqstest t, xmltable(.. passing outp ... ) x where t.type = req_id_new.

И покажи листинг запроса в sqlplus на конкретном t.type.
...
Рейтинг: 0 / 0
Парсинг XML, проблема
    #39500253
jukka413
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,


envИ покажи листинг запроса в sqlplus на конкретном t.type. - я не знаю, как это сделать.

Ответ не меняется, он тот же самый, что я приводил в начале.

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body><ns3:exportPaymentDocumentDetailsResponse xmlns:ns2="http://smev.gosuslugi.ru/rev120315" 
xmlns:ns3="http://front.export.gis.smev.someurl.ru/" xmlns:ns4="http://www.w3.org/2004/08/xop/include" 
xmlns:ns5="http://ru.someurl.smev.gis/dict">
<ns2:ExportPaymentDocumentDetails>
<ns2:PaymentDocument>
<ns2:PaymentDocumentID>11AA223344-01-7072</ns2:PaymentDocumentID>
<ns2:UnifiedAccountNumber>11AA223344</ns2:UnifiedAccountNumber>
<ns2:AccountNumber>111AA223344</ns2:AccountNumber>
<ns2:MCServiceID>11AA223344-01</ns2:MCServiceID>
</ns2:PaymentDocument>
<ns2:PaymentDocument>
<ns2:PaymentDocumentID>11AA223344-01-7066</ns2:PaymentDocumentID>
<ns2:UnifiedAccountNumber>11AA223344</ns2:UnifiedAccountNumber>
<ns2:AccountNumber>11AA223344</ns2:AccountNumber>
<ns2:MCServiceID>11AA223344-01</ns2:MCServiceID>
</ns2:PaymentDocument>
</ns2:ExportPaymentDocumentDetails>
</ns3:exportPaymentDocumentDetailsResponse>
</S:Body>
</S:Envelope>



А через цикл почему вставлялась только одна запись?
...
Рейтинг: 0 / 0
Парсинг XML, проблема
    #39500263
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jukka413,

Возможно какие-то приколы 10g, у меня нет этой версии под рукой, чтобы проверять.

insert select на чтение из таблицы перенаправил?
...
Рейтинг: 0 / 0
Парсинг XML, проблема
    #39500280
jukka413
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

Что-то я сегодня вообще туплю)

env
insert select на чтение из таблицы перенаправил?

Всмыле?
...
Рейтинг: 0 / 0
Парсинг XML, проблема
    #39500282
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env
Код: plsql
1.
select .. from usb_giszhkh_reqstest t, xmltable(.. passing t.outp ... ) x where t.type = req_id_new
...
Рейтинг: 0 / 0
Парсинг XML, проблема
    #39500299
jukka413
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

Это сделал, сам селект выводит нормально все значения)

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
select PaymentDocumentID, UnifiedAccountNumber, AccountNumber from usb_giszhkh_reqstest t, xmltable(xmlnamespaces
('http://schemas.xmlsoap.org/soap/envelope/' as "S", 'http://smev.gosuslugi.ru/rev120315' as "ns2", 'http://front.export.gis.smev.someurl.ru/' as "ns3"
,'http://www.w3.org/2004/08/xop/include' as "ns4", 'http://ru.someurl.smev.gis/dict' as "ns5"),
'for $i in S:Envelope/S:Body/ns3:exportPaymentDocumentDetailsResponse/ns2:ExportPaymentDocumentDetails
              return $i/ns2:PaymentDocument' passing t.outp columns 
                 PaymentDocumentID varchar2(250) path 'ns2:PaymentDocumentID',
                 UnifiedAccountNumber varchar2(250) path 'ns2:UnifiedAccountNumber',
                 AccountNumber varchar2(250) path 'ns2:AccountNumber') x where t.type = 84
...
Рейтинг: 0 / 0
Парсинг XML, проблема
    #39500306
jukka413
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

Однако инсерт в таблицу по прежнему ничего не вставляет

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 insert into USB_GISZHKH_INFO_4701 (id_rec,Id_Req,ID_RECORD,PAYMENTDOCUMENTID,UNIFIEDACCOUNTNUMBER,ACCOUNTNUMBER) 
select req_id_new as id_rec, req as id_req, req1 as id_record, x.PaymentDocumentID, x.UnifiedAccountNumber, x.AccountNumber
from 
 usb_giszhkh_reqstest t, xmltable(xmlnamespaces
('http://schemas.xmlsoap.org/soap/envelope/' as "S", 'http://smev.gosuslugi.ru/rev120315' as "ns2", 'http://front.export.gis.smev.someurl.ru/' as "ns3"
,'http://www.w3.org/2004/08/xop/include' as "ns4", 'http://ru.someurl.smev.gis/dict' as "ns5"),
'for $i in S:Envelope/S:Body/ns3:exportPaymentDocumentDetailsResponse/ns2:ExportPaymentDocumentDetails
              return $i/ns2:PaymentDocument' passing t.outp columns 
                 PaymentDocumentID varchar2(250) path 'ns2:PaymentDocumentID',
                 UnifiedAccountNumber varchar2(250) path 'ns2:UnifiedAccountNumber',
                 AccountNumber varchar2(250) path 'ns2:AccountNumber') x where t.type=req_id_new;
...
Рейтинг: 0 / 0
Парсинг XML, проблема
    #39500317
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jukka413,
после инсерта комит есть ?
...
Рейтинг: 0 / 0
Парсинг XML, проблема
    #39500319
jukka413
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
123йй,

да
...
Рейтинг: 0 / 0
Парсинг XML, проблема
    #39500330
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123йй,

Если ты теперь возьмёшь известный тебе идентификатор строки таблицы и по нему выполнишь этот insert .. select ... вне процедуры - что будет?
...
Рейтинг: 0 / 0
Парсинг XML, проблема
    #39500342
jukka413
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

Ошибка

Код: plsql
1.
2.
ORA-00001: unique constraint violated
ORA-06512: at line 13



Вот код

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
declare 
        otvet             clob;
        otvet_s           XMLTYPE;
        zapros4100 clob;
        req_id_new number (20);
        req number(16);
        req1 number (16);
        begin
          select sequence_1.NEXTVAL into req_id_new from dual;
          select sequence_1.NEXTVAL into req from dual;
          select sequence_1.NEXTVAL into req1 from dual;
begin
  insert into USB_GISZHKH_INFO_4701 (id_rec,Id_Req,ID_RECORD,PAYMENTDOCUMENTID,UNIFIEDACCOUNTNUMBER,ACCOUNTNUMBER) 
select req_id_new as id_rec, req as id_req, req1 as id_record, x.PaymentDocumentID, x.UnifiedAccountNumber, x.AccountNumber
from  
usb_giszhkh_reqstest t, xmltable(xmlnamespaces
('http://schemas.xmlsoap.org/soap/envelope/' as "S", 'http://smev.gosuslugi.ru/rev120315' as "ns2", 'http://front.export.gis.smev.someurl.ru/' as "ns3"
,'http://www.w3.org/2004/08/xop/include' as "ns4", 'http://ru.someurl.smev.gis/dict' as "ns5"),
'for $i in S:Envelope/S:Body/ns3:exportPaymentDocumentDetailsResponse/ns2:ExportPaymentDocumentDetails
              return $i/ns2:PaymentDocument' passing t.outp columns 
                 PaymentDocumentID varchar2(250) path 'ns2:PaymentDocumentID',
                 UnifiedAccountNumber varchar2(250) path 'ns2:UnifiedAccountNumber',
                 AccountNumber varchar2(250) path 'ns2:AccountNumber') x where t.type = 87;
commit;
return;
end;
end;
...
Рейтинг: 0 / 0
Парсинг XML, проблема
    #39500345
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jukka413,

т.е. запись в таблице таки есть
...
Рейтинг: 0 / 0
Парсинг XML, проблема
    #39500407
jukka413
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

ммммм, нет
В таблице USB_GISZHKH_INFO_4701 такой записи нет О_о
...
Рейтинг: 0 / 0
Парсинг XML, проблема
    #39500412
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jukka413,

Тогда придётся ещё раз щёлкнуть тебя по носу.

Смотреть в сторону unique index на id_rec. Одна запись вставлялась, а потом остальные падали на unique constraint violation, который похоже глотается чем-то вроде when others then null.

А вставка всех записей разом сразу ловит unique constraint violation, который опять же глотается.
...
Рейтинг: 0 / 0
Парсинг XML, проблема
    #39500416
jukka413
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

Мммммм, кажется я только примерно понял о чем речь и совсем не понял, как этого избежать)
Чтобы не падало на unique constraint violation
...
Рейтинг: 0 / 0
Парсинг XML, проблема
    #39500428
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jukka413,

Смотри какие у тебя индексы есть на USB_GISZHKH_INFO_4701. Какие из них уникальные, какие поля в них входят.

И на обработку exception в коде.
...
Рейтинг: 0 / 0
19 сообщений из 69, страница 3 из 3
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Парсинг XML, проблема
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]