powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите с XML
12 сообщений из 12, страница 1 из 1
Помогите с XML
    #39278353
JohnT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрейшего всем дня.

Помогите разобраться с кодом.

Есть скрипт:

Код: 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.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
with a as (
	select XMLelement("Файл ", XMLattributes('F1027700466640_190716_Z_0003' as "ИдФайл", -- Подставить имя файла-запроса   --Открыл тег 1 ФАЙЛ 
                                    '1.0' as "ВерсФорм", 
                                    'ЦИКЦБ' as "ТипИнф", 'XXX' as "ВерсПрог",
                                    'VO_CIK_CB_7.xsd' as "xsi:noNamespaceSchemaLocation", 
                                    'http://www.w3.org/2001/XMLSchema-instance' as "xmlns:xsi"),
							
							XMLelement("Запрос ", XMLattributes('E41C727C6E714FD38C9409DF2EF68CB5' as "Запрос Ид", 	-- Подставить имя файла-запроса --Открыл тег 2 ЗАПРОС
                                        '19.07.2016' as "Дата")), -- Подставить имя файла-запроса					--Закрыл тег 2 ЗАПРОС

							XMLelement("ИнфОрг ", XMLattributes('Колхоз Заря' as "Название",	--Открыл тег 3 ИнфОрг
                                        'Кукуево, ул. Улица,77' as "Адрес",
                                        '7711110000' as "ИНН", '1010100000111' as "ОГРН", 'Иванов И.И.' as "ФИО",
                                        '(811)44000516' as "Телефон", 'ivo@ivo.ru' as "ЭлПочта")),											-- Закрыл тег 3 ИнфОрг
										
									XMLagg(			-- Открыл агрегацию XMLAGG
										XMLelement("Персона ", XMLattributes(c.id2 as "ИД"),		--Открыл тег 4 Персона
											XMLelement("ПерсИнфо",
												XMLFOREST(												--Открыл дерево 
													XMLelement("ФИОД ", XMLattributes(  			--Открыл тег ФИОД	
																c.surname as "Фамилия",
																c.first_name "Имя",
																c.patronymic as "Отчество",
																c.birthday as "ДатаРожд")),						--Закрыл тег ФИОД
													
													XMLelement("Документ ", XMLattributes(			--Открыл тэк Документ
																c.dcm_type as "КодВидДок",
																c.dcm_serial as "Серия",
																c.dcm_no as "Номер")),							--Закрыл тег Документ
													
													XMLelement("Адрес ", XMLattributes(  			--Открыл тег Адрес                         
																c.code_sub as "КодСубъекта",
																c.nekonf_adr as "НеконфАдрес",
																c.konf_adr as "КонфАдрес",
																c.mest_roj as "МестоРождения"))					--Закрыл тег Адрес
											
											)	-- Закрыл дерево 
											),	--Закрыл ПерсИнфо								
											
										 XMLelement("Счета ", XMLattributes('048327741'||a.id as "ИдСчета"),	--Открыл тег Счета
												XMLelement("Счет ", XMLattributes(					--Открыл тег Счет
															'Счет по вкладу (депозиту)' as "ВидСчета",
															a.id as "НомерСчета",
															p_cr_acc.rem_cur('BNAL',a.id,to_date(c.date1,'dd.mm.yyyy')) as "Остаток")), --Закрыл тег Счет
												XMLelement("КредитОрг ", XMLattributes(											-- Открыл тег КредитОрг
															'Колхоз Заря' as "НаимКредит",
															'77' as "КодСубКред",
															'Кукуево' as "НеконфАдрКред",
															'ул. Улица 77' as "КонфАдрКред"))							--Закрыл тег КредитОрг
										 ),				--Закрыл тег Счета
										 
										 XMLelement("СлужИнфо ", XMLattributes(c.vrn_kand as "ВРНКанд"),	--Открыл тег СлужИнфо
												XMLelement("ИДИнфо ", XMLattributes(						--Открыл тег ИДИнфо
															c.code_sub3 as "КодСубъекта",
															c.company as "Кампания",
															c.system1 as "Система")),				--Закрыл тег ИДИнфо
												XMLelement("Наименование ", XMLattributes( 
															c.vibory as "Выборы",
															c.subject as "Субъект",
															c.date_sved as "ДатаСвед"))
										 )	--Закрыл тег СлужИнфо
												


	) --Закрыл тег 4 Персона
	) --Закрыл агрегацию XMLAGG
	)	-- Закрыл тег 1 ФАЙЛ
	as CIK_XML	-- псевдоним агрегации
from cik c, customers cc, accounts_main a
    
    where 
        (
        (lower(cc.surname)=lower(c.surname) and lower(cc.first_name)=lower(c.first_name) and lower(cc.patronymic)=lower(c.patronymic))
        or
        lower(cc.name_cyr)=(lower(c.surname)||' '||lower(c.first_name)||' '||lower(c.patronymic))
        or
              
            (lower(cc.name_cyr) like '%'||' '||lower(c.surname)||' '||lower(c.first_name)||' '||lower(c.patronymic))
          )
         
        and (replace(cc.dcm_serial_no,' ')=replace(c.dcm_serial,' ') and cc.dcm_no_id=c.dcm_no)
        and (cc.closed is null or cc.closed>=to_date(c.date1,'dd.mm.yyyy'))
        and cc.no=a.customer_no
        and (a.closed is null or a.closed>=to_date(c.date1,'dd.mm.yyyy'))
        and (substr(a.id,0,5) in ('40802','40817','40820','40821') or substr(a.id,0,3) in ('423'))

) -- закрыл with

select replace(XMLSERIALIZE(Document CIK_XML as CLOB), '><', '>' || chr(10) || '<') as CIK_XML_2 from a




на выходе должен получить xml такого вида:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<?xml version="1.0" encoding="UTF-8"?>
        <Файл ИдФайл="K1020700000496_190716_100000_Z_0003" ВерсФорм="1.0" ТипИнф="ЦИКЦБ" ВерсПрог="XXX" xsi:noNamespaceSchemaLocation="VO_CIK_CB_7.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <Запрос Ид="E41C727C6E714FD38C9409DF2EF68CB5" Дата="19.07.2016"/>
		<ИнфОрг Название="Колхоз Заря" Адрес="Кукуево, ул. Улица, 77" ИНН="7711110000" ОГРН="1010100000111" ФИО="Иванов И.И." Телефон="(811)44000516" ЭлПочта="ivo@ivo.ru"></ИнфОрг>
		<Персона Ид="7FBDE9A6C6924595B119CF9C73678730">
		<ПерсИнфо>
		<ФИОД Фамилия="Перов" Имя="Петр" Отчество="Петрович" ДатаРожд="09.07.1984"></ФИОД>
		<Документ КодВидДок="21" Серия="44 44" Номер="111111"></Документ>
		<Адрес КодСубъекта="78" НеконфАдрес="город Санкт-Петербург, Фрунзенский район" КонфАдрес="Альпийский переулок, дом 1101, " МестоРождения="г.Ленинград"></Адрес>
		</ПерсИнфо>
		<Счета ИдСчета="04832774111111111111111111111">
		<Счет ВидСчета="Текущий" НомерСчета="111111111111111111111" Остаток="0.00"></Счет>
		<КредитОрг НаимКредит="Колхоз Заря" КодСубКред="77" НеконфАдрКред="Кукуево" КонфАдрКред="ул. Улица, 77"></КредитОрг>
		</Счета>
		<СлужИнфо ВРНКанд="2782000115322">
		<ИДИнфо КодСубъекта="78" Кампания="2222000118411" Система="2"></ИДИнфо>
		<Наименование Выборы="Выборы депутатов Законодательного Собрания Санкт-Петербурга шестого созыва" Субъект="город Санкт-Петербург" ДатаСвед="01.06.2016"></Наименование>
		</СлужИнфо>
		</Персона>
</Файл>



Получаю сообщение об ошибке:

9:22:25 ORA-19208: parameter 1 of function XMLFOREST must be aliased


Что не так???

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

перевести ошибку пробовали ?
...
Рейтинг: 0 / 0
Помогите с XML
    #39278387
JohnT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
123йй,
Пробовали, но не доходит где прошелкал
...
Рейтинг: 0 / 0
Помогите с XML
    #39278390
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnT,

добавьте алиас к XMLFOREST
...
Рейтинг: 0 / 0
Помогите с XML
    #39278391
JohnT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
123йй,
покажите,если не сложно, где не хватает псевдонима

пробовал и так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
XMLagg(			-- Открыл агрегацию XMLAGG
										XMLelement("Персона ", XMLattributes(c.id2 as "ИД"),		--Открыл тэг 4 Персона
											XMLFOREST(												--Открыл дерево ПерсИнфо
													XMLelement("ФИОД ", XMLattributes(  			--Открыл тэг ФИОД	
																c.surname as "Фамилия",
																c.first_name "Имя",
																c.patronymic as "Отчество",
																c.birthday as "ДатаРожд")),						--Закрыл тэг ФИОД
													
													XMLelement("Документ ", XMLattributes(			--Открыл тэк Документ
																c.dcm_type as "КодВидДок",
																c.dcm_serial as "Серия",
																c.dcm_no as "Номер")),							--Закрыл тэг Документ
													
													XMLelement("Адрес ", XMLattributes(  			--Открыл тэг Адрес                         
																c.code_sub as "КодСубъекта",
																c.nekonf_adr as "НеконфАдрес",
																c.konf_adr as "КонфАдрес",
																c.mest_roj as "МестоРождения"))					--Закрыл тэг Адрес
											
											) as "ПерсИнфо"	,								-- Закрыл дерево ПерсИнфо




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

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

Код: plsql
1.
c.birthday as "ДатаРожд")) as "fiod"
...
Рейтинг: 0 / 0
Помогите с XML
    #39278404
JohnT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
123йй,

Добавил алиасы всем элементам xmlforest, теперь ошибка

10:12:31 ORA-31011: XML parsing failed
10:12:31 ORA-19202: Error occurred in XML processing
10:12:31 LPX-00210: expected '=' instead of 'И'
10:12:31 Error at line 1
...
Рейтинг: 0 / 0
Помогите с XML
    #39278407
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnT,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SQL> select xmltype('И.ванов') from dual;
select xmltype('И.ванов') from dual
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00210: expected '<' instead of 'И'
Error at line 1
ORA-06512: at "SYS.XMLTYPE", line 301
ORA-06512: at line 1

SQL> 
...
Рейтинг: 0 / 0
Помогите с XML
    #39278411
JohnT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
123йй, в полученном xml, естесствено, появились теги псевдонимов элементов xmlforest, которые не нужны, от них можно избавиться только руками?

Код: 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.
<Персона ИД="00D416C7B3E742CFBF71B48D3DD700AD">
<fiod> --   <---- АЛИАС ЭЛЕМЕНТА XMLFOREST, НЕ НУЖЕН
<ФИОД Фамилия="Иванов" Имя="Иван" Отчество="Иванович" ДатаРожд="23.05.1901">
</ФИОД>
</fiod>    --   <---- АЛИАС ЭЛЕМЕНТА XMLFOREST, НЕ НУЖЕН
<docum> --   <---- АЛИАС ЭЛЕМЕНТА XMLFOREST, НЕ НУЖЕН
<Документ КодВидДок="21" Серия="11 11" Номер="777777">
</Документ>
</docum>  -- <---- АЛИАС ЭЛЕМЕНТА XMLFOREST, НЕ НУЖЕН
<adress>  --   <---- АЛИАС ЭЛЕМЕНТА XMLFOREST, НЕ НУЖЕН
<Адрес КодСубъекта="07" НеконфАдрес="город Нальчик" КонфАдрес="ул. Кучмезова" МестоРождения="Киргизская ССР, Тюпский район, село Кутурга">
</Адрес>
</adress>    --   <---- АЛИАС ЭЛЕМЕНТА XMLFOREST, НЕ НУЖЕН
<Счета ИдСчета="04832774142301810000010001111">
<Счет ВидСчета="Счет по вкладу (депозиту)" НомерСчета="42301810000010001111" Остаток="0">
</Счет>
<КредитОрг НаимКредит="БАНК Н" КодСубКред="77" НеконфАдрКред="Кабардино-Балкарская Республика, г.Нальчик" КонфАдрКред="ул. Толстого, 77">
</КредитОрг>
</Счета>
<СлужИнфо ВРНКанд="1001000711022222    ">
<ИДИнфо КодСубъекта="0" Кампания="100100067795222" Система="2">
</ИДИнфо>
<Наименование Выборы="Выборы депутатов Государственной Думы Федерального Собрания Российской Федерации седьмого созыва" Субъект="Российская Федерация" ДатаСвед="01.06.2016">
</Наименование>
</СлужИнфо>
</Персона>
...
Рейтинг: 0 / 0
Помогите с XML
    #39278423
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сам XMLForest не нужен.
...
Рейтинг: 0 / 0
Помогите с XML
    #39278562
JohnT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо, все получилось. Главное все очевидно, но когда глаз "за мылится", очевидного и не видишь.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите с XML
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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