powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Создание XML данных в языке SQL
25 сообщений из 26, страница 1 из 2
Создание XML данных в языке SQL
    #39740801
Piastry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите статью, где описывается как создать xml данные в языке sql в оракловом диалекте.
...
Рейтинг: 0 / 0
Создание XML данных в языке SQL
    #39740804
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Piastry,

XML DB Developers Guide
...
Рейтинг: 0 / 0
Создание XML данных в языке SQL
    #39740817
Piastry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что то типо этого: https://info-comp.ru/obucheniest/642-for-xml-in-t-sql.html

Транзакт в этом плане сильно отличается от оракла?
...
Рейтинг: 0 / 0
Создание XML данных в языке SQL
    #39740848
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Piastryчто то типоКритерии "типо"сти?
...
Рейтинг: 0 / 0
Создание XML данных в языке SQL
    #39740852
Piastry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-Piastryчто то типоКритерии "типо"сти?

В оракловом диалекте можно применять, описанное в данной статье?
...
Рейтинг: 0 / 0
Создание XML данных в языке SQL
    #39740960
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Создание XML данных в языке SQL
    #39741090
Фотография mcwhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env-2-Piastry,

XML DB Developers Guide
Предварительно полезно прочесть вводную в Concepts:
Overview of XML in Oracle Database
(для пред. версий см. аналогичный раздел)
...
Рейтинг: 0 / 0
Создание XML данных в языке SQL
    #39741337
Piastry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде как разобрался, но нужна помощь. При запросе:

select xmlelement("document",
xmlattributes('testId' as "DocumentID"),
xmlagg(
xmlelement("row", xmlforest(t.Id "Id", t.Name "Name"))
)
) as XMLresult
from tXML t

получается ответ в одну строчку:

<document DocumentID="testId"><row><Id>1</Id><Name>Name1</Name></row><row><Id>2</Id><Name>Name2</Name></row><row><Id>3</Id><Name>Name3</Name></row><row><Id>4</Id><Name>Name4</Name></row><row><Id>5</Id><Name>Name5</Name></row><row><Id>6</Id><Name>Name6</Name></row><row><Id>7</Id><Name>Name7</Name></row><row><Id>8</Id><Name>Name8</Name></row><row><Id>9</Id><Name>Name9</Name></row><row><Id>10</Id><Name>Name10</Name></row></document>

Как сделать перенос?
...
Рейтинг: 0 / 0
Создание XML данных в языке SQL
    #39741347
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PiastryКак сделать перенос?

В смысле сделать pretty print xml? Испoльзуй XMLSERIALIZE.

SY.
...
Рейтинг: 0 / 0
Создание XML данных в языке SQL
    #39741350
Piastry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что бы выглядело вот так:

<document DocumentID="testId">
<row>
<Id>1</Id>
<Name>Name1</Name>
</row>
<row>
<Id>2</Id>
<Name>Name2</Name>
</row>
<row>
<Id>3</Id>
<Name>Name3</Name>
</row>
<row>
<Id>4</Id>
<Name>Name4
</Name>
</row>
<row>
<Id>5</Id>
<Name>Name5</Name>
</row>
<row><Id>6</Id><Name>Name6</Name></row>
<row><Id>7</Id><Name>Name7</Name></row>
<row><Id>8</Id><Name>Name8</Name></row>
<row><Id>9</Id><Name>Name9</Name></row>
<row><Id>10</Id><Name>Name10</Name></row>
</document>
...
Рейтинг: 0 / 0
Создание XML данных в языке SQL
    #39741395
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PiastryВроде как разобрался, но нужна помощь. При запросе:

select xmlelement("document",
xmlattributes('testId' as "DocumentID"),
xmlagg(
xmlelement("row", xmlforest(t.Id "Id", t.Name "Name"))
)
) as XMLresult
from tXML t

получается ответ в одну строчку:
....
Как сделать перенос?
xml это и есть одна строка, понимать которую должен тот, кто принимает xml.
Например, вебсервис, которому неважно как это воспринимается человеком

Чтобы тебе посмотреть в отформатированном виде, можешь просто скопипастить в текстовый файл и открыть хоть xml редактором, хоть браузером
...
Рейтинг: 0 / 0
Создание XML данных в языке SQL
    #39741419
Piastry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При таком запросе:
select XMLELEMENT("city",c.name) from city c;

Результат:
<city>Красноярск</city>
<city>Москва</city>
<city>Новосибирск</city>

При таком запросе:
select XMLELEment("country",XMLAGG(XMLELEMENT("city",c.name))) from city c;

Результат:
<country><city>Красноярск</city><city>Москва</city><city>Новосибирск</city></country>

Как показано здесь: https://kbss.ru/blog/oracledb/297.html результат должен быть такой.
<country>
_______<city>Красноярск</city>
_______<city>Москва</city>
_______<city>Новосибирск</city>
</country>

_______ - Это пробелы.

Чего не так-то?
...
Рейтинг: 0 / 0
Создание XML данных в языке SQL
    #39741431
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PiastryЧего не так-то?при выводе чисел, дат и других, даже чар-типов, значение само по себе от форматирования для удобочитаемости.
...
Рейтинг: 0 / 0
Создание XML данных в языке SQL
    #39741453
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PiastryЧего не так-то?[/b]

сказали же xmlserialize Вложенный цикл FOR IN LOOP

SY.
...
Рейтинг: 0 / 0
Создание XML данных в языке SQL
    #39741574
Piastry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xmlserialize увеличивает отступ между тегами равный indent size = N, но перенос не делает.
...
Рейтинг: 0 / 0
Создание XML данных в языке SQL
    #39741576
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Создание XML данных в языке SQL
    #39741577
Piastry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Создание XML данных в языке SQL
    #39741578
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PiastryЗдесь написано про отступы.
<Elic-style>глаза разуй.</Elic-style>
...
Рейтинг: 0 / 0
Создание XML данных в языке SQL
    #39741582
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И ты, Брут
...
Рейтинг: 0 / 0
Создание XML данных в языке SQL
    #39741618
Piastry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Specify NO INDENT to strip all insignificant whitespace from the output. Specify INDENT SIZE = N, where N is a whole number, for output that is pretty-printed using a relative indentation of N spaces. If N is 0, then pretty-printing inserts a newline character after each element, placing each element on a line by itself, but omitting all other insignificant whitespace in the output. If INDENT is present without a SIZE specification, then 2-space indenting is used. If you omit this clause, then the behavior (pretty-printing or not) is indeterminate.

Дословный перевод:

Цель

XMLSerialize создает строку или лоб, содержащий содержимое value_expr.

•Если указан параметр DOCUMENT, value_expr должен быть допустимым XML-документом.


•Если вы указываете содержимое, то value_expr не обязательно должен быть одним корневым XML-документом. Однако это должно быть допустимое содержимое XML.


•Указанный тип данных может быть строковым типом (VARCHAR2 или VARCHAR, но не NVARCHAR2), BLOB или CLOB. Значение по умолчанию-CLOB.


•Если типом данных является BLOB, можно указать предложение ENCODING для использования указанной кодировки в прологе. Xml_encoding_spec-это объявление кодировки XML (encoding="...").


•Укажите пункт версию, чтобы использовать версию в string_literal в объявление XML (<?версия XML."=.."...?>).


•Укажите без отступа, чтобы удалить все незначительные пробелы из выходных данных. Укажите размер отступа = N, где N-целое число, для вывода, который печатается с использованием относительного отступа из N пробелов. Если N равно 0, то pretty-printing вставляет символ новой строки после каждого элемента, помещая каждый элемент в строку сам по себе, но опуская все остальные незначительные пробелы в выводе. Если отступ присутствует без спецификации размера, то используется отступ 2-space. Если вы опустите это предложение, то поведение (pretty-printing или not) неопределенно.


* Скрыть значения по умолчанию и показать значения по умолчанию применяются только к данным на основе схемы XML. Если заданы значения по умолчанию SHOW и во входных данных отсутствуют необязательные элементы или атрибуты, для которых XML-схема определяет значения по умолчанию, эти элементы или атрибуты включаются в выходные данные со значениями по умолчанию. Если указать скрыть значения по умолчанию, то такие элементы или атрибуты не будут включены в выходные данные. Скрыть значения по умолчанию-это поведение по умолчанию.

Где здесь написано про переносы?
...
Рейтинг: 0 / 0
Создание XML данных в языке SQL
    #39741619
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PiastryУкажите размер отступа = N, где N-целое число, для вывода, который печатается с использованием относительного отступа из N пробелов. Если N равно 0, то pretty-printing вставляет символ новой строки после каждого элемента, помещая каждый элемент в строку сам по себе, но опуская все остальные незначительные пробелы в выводе. Если отступ присутствует без спецификации размера, то используется отступ 2-space. Если вы опустите это предложение, то поведение (pretty-printing или not) неопределенно.
Где здесь написано про переносы? "Я подчеркнул".
...
Рейтинг: 0 / 0
Создание XML данных в языке SQL
    #39741636
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov"Я подчеркнул".
Подчеркивать надо было "pretty printing", суть которого сводится к форматированию xml-текста в человеко-читаемый вид.
ТС скорее всего пробует в каком-нибудь SQL-окошке PLSQLDeveloper, которое в гриде переносы строк стрипает.
...
Рейтинг: 0 / 0
Создание XML данных в языке SQL
    #39741638
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PiastryГде здесь написано про переносы?Чудо-переводчик, дословный перевод "indent" зависит от области применения. В типографии это отступ от левой границы печати (слеванаправное письмо). В программировании отступ от начала строки .
...
Рейтинг: 0 / 0
Создание XML данных в языке SQL
    #39741643
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousПодчеркивать надо было "pretty printing"Про что спрашивали, то и подчеркнул
...
Рейтинг: 0 / 0
Создание XML данных в языке SQL
    #39742129
XMLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакxml это и есть одна строка, понимать которую должен тот, кто принимает xml.

xmlelement, который использует автор, возвращает не строку а объект
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Создание XML данных в языке SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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