powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как залить XML сложной структуры
6 сообщений из 31, страница 2 из 2
Как залить XML сложной структуры
    #39277883
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XML||Это опробовано, получаю http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM
...
Рейтинг: 0 / 0
Как залить XML сложной структуры
    #39277893
Код: 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.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
with t as (
select '<?xml version="1.0" encoding="UTF-8"?>
   
<Файл ИдФайл="F12124545_Z_0003" ВерсФорм="1.0" ТипИнф="ЗАПРОС" ВерсПрог="XXX" xsi:noNamespaceSchemaLocation="VO_8.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<Запрос Ид="ECB5" Дата="19.07.2016"/>
<Персона Ид="7FBDE08730">
   <ПерсИнфо>
      <ФИОД Фамилия="Иванов" Имя="Иван" Отчество="Иванович" ДатаРожд="09.07.1900"></ФИОД>
      <Документ КодВидДок="21" Серия="40 00" Номер="000001"></Документ>
      <Адрес КодСубъекта="78" НеконфАдрес="город Санкт-Петербург, Фрунзенский район" КонфАдрес="Тупик Карла , дом 11, корп. 1, кв. 1" МестоРождения="г.Ленинград"></Адрес>
    </ПерсИнфо>
  <СлужИнфо ВРН="27060">
   <ИДИнфо Код="25" Фирма="2705" Система="2"></ИДИнфо>
   <Наименование Мероприятие="Выборы человека" Субъект="город Санкт-Петербург"></Наименование>
  </СлужИнфо>
</Персона>
</Файл>' xstr from dual
) 
select xt.* 
from t
   , xmltable('/Файл/Персона' 
     passing xmltype(t.xstr)
     columns PersID    varchar2(10)  path '@Ид'
           , FirstName varchar2(100) path './ПерсИнфо/ФИОД/@Имя' 
           , LastName  varchar2(100) path './ПерсИнфо/ФИОД/@Фамилия'
           , BirthDate varchar2(100) path 'ПерсИнфо/ФИОД/@ДатаРожд'
           , DocCode   path 'ПерсИнфо/Документ/@КодВидДок'
           , DocSerial path 'ПерсИнфо/Документ/@Серия'
           , DocNo     path 'ПерсИнфо/Документ/@Номер'
           , SrvInfBPH   path 'СлужИнфо/@ВРН'
           , SrvInfCode  path 'СлужИнфо/ИДИнфо/@Код'
           , SrvInfCompany path 'СлужИнфо/ИДИнфо/@Фирма'
           , SrvInfSrcSystm path 'СлужИнфо/ИДИнфо/@Система'
           , SrvInfEventName path 'СлужИнфо/Наименование/@Мероприятие'
           , SrvInfSubject path 'СлужИнфо/Наименование/@Субъект'
   ) xt
;
...
Рейтинг: 0 / 0
Как залить XML сложной структуры
    #39277918
XML||
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как за один запрос получить данные из раздела <Файл ИдФайл> и <Запрос Ид> ?
Пробую таким образом :
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT * FROM
       XMLTABLE ('Файл/Персона'
      PASSING XMLTYPE ( BFILENAME ( 'XMLDIR', 'F.xml' ) , NLS_CHARSET_ID ( 'UTF8' ) )
columns 
 Id1  varchar2(50) path '../Запрос/@Ид',
Id  varchar2(50) path '@Ид',
 F  varchar2(70) path 'ПерсИнфо/ФИОД/@Фамилия',
......



Ошибка
ORA-19110: неподдерживаемое выражение XQuery
19110. 00000 - "unsupported XQuery expression"

проблема в Id1 varchar2(50) path '../Запрос/@Ид',
т.е. нужно подняться на уровень , как это сделать?
...
Рейтинг: 0 / 0
Как залить XML сложной структуры
    #39277953
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XML||т.е. нужно подняться на уровень , как это сделать?Подниматься нужно откуда-то.
...
Рейтинг: 0 / 0
Как залить XML сложной структуры
    #39284110
NewOracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
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.
28.
29.
30.
with t as (
select '<?xml version="1.0" encoding="UTF-8"?>
   
<Файл ИдФайл="F12124545_Z_0003" ВерсФорм="1.0" ТипИнф="ЗАПРОС" ВерсПрог="XXX" xsi:noNamespaceSchemaLocation="VO_8.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<Запрос Ид="ECB5" Дата="19.07.2016"/>
<Персона Ид="7FBDE08730">
   <ПерсИнфо>
      <ФИОД Фамилия="Иванов" Имя="Иван" Отчество="Иванович" ДатаРожд="09.07.1900"></ФИОД>
      <Документ КодВидДок="21" Серия="40 00" Номер="000001"></Документ>
      <Адрес КодСубъекта="78" НеконфАдрес="город Санкт-Петербург, Фрунзенский район" КонфАдрес="Тупик Карла , дом 11, корп. 1, кв. 1" МестоРождения="г.Ленинград"></Адрес>
    </ПерсИнфо>
  <СлужИнфо ВРН="27060">
   <ИДИнфо Код="25" Фирма="2705" Система="2"></ИДИнфо>
   <Наименование Мероприятие="Выборы человека" Субъект="город Санкт-Петербург"></Наименование>
  </СлужИнфо>
</Персона>
</Файл>' xstr from dual
)
SELECT 
Z.EXTRACT(('Файл/@ТипИнф')).GETSTRINGVAL() AS "ТипИнф"
,Z.EXTRACT(('Файл/Запрос/@Ид')).GETSTRINGVAL()  AS "Ид"
,Z.EXTRACT(('Файл/Персона/ПерсИнфо/ФИОД/@Фамилия')).GETSTRINGVAL()  AS "Фамилия"
,Z.EXTRACT(('Файл/Персона/ПерсИнфо/Документ/@КодВидДок')).GETSTRINGVAL()  AS "КодВидДок"
,Z.EXTRACT(('Файл/Персона/ПерсИнфо/Адрес/@НеконфАдрес')).GETSTRINGVAL()  AS "НеконфАдрес"
,Z.EXTRACT(('Файл/Персона/СлужИнфо/@ВРН')).GETSTRINGVAL()  AS "ВРН"
FROM t 
CROSS JOIN 
TABLE(XMLSEQUENCE(XMLTYPE(T.XSTR).EXTRACT('Файл'))) Z
;
...
Рейтинг: 0 / 0
Как залить XML сложной структуры
    #39284201
Фотография Rinka777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pentaho
...
Рейтинг: 0 / 0
6 сообщений из 31, страница 2 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как залить XML сложной структуры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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