powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Где лучше работать с XML: в SQL или PL/SQL?
14 сообщений из 14, страница 1 из 1
Где лучше работать с XML: в SQL или PL/SQL?
    #37539687
Коллеги, где посоветуете обрабатывать XML?

В SQL :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT --+ use_nl (T X)
  X.extract('node/text()').getClobVal() node_
, X.extract('node/@field1').getStringVal() field1#
, X.extract('node/@field2').getStringVal() field2#
, X.extract('node/@field3').getStringVal() field3#
, T.id 
FROM
  TABLE_WITH_XML T
, TABLE(XMLSEQUENCE(EXTRACT(XMLTYPE.createXML(T.CLOB_COLUMN), '//parent-node/node')))  X
WHERE T.id =  42 

или в PL/SQL :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
DECLARE
  xml    XMLType ;
  row_id NUMBER;
BEGIN
  row_id :=  42 ;

  select XMLType.createXML(T.CLOB_COLUMN)
  into xml
  from TABLE_WITH_XML T
  where T.id = row_id;
  
  ...
  < и далее серия xml.existsNode() / xml.extract() >
  ...
END;

Существует подозрение, что для SQL-варианта, происходит переключение контекста ... и в сути там тот же pl.

--
PS. Интересует ситуация для 10/11 версий.
...
Рейтинг: 0 / 0
Где лучше работать с XML: в SQL или PL/SQL?
    #37539804
crazy_hands
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
КолмогоровАрнольдМозер,

Если не сложный XML, то SQL. Если нужна особая логика при распарсивании, то PL/SQL, легче будет читать другому. Если нужна производительность, то JAVA. Это из личного опыта и дело вкуса.
...
Рейтинг: 0 / 0
Где лучше работать с XML: в SQL или PL/SQL?
    #37539814
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crazy_handsЭто из личного опыта и дело вкуса.Это не опыт и вкус, а их отсутствие.
...
Рейтинг: 0 / 0
Где лучше работать с XML: в SQL или PL/SQL?
    #37540320
--------
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-,

А что говорит ваш опыт?

скрипач java не нужен, это понятно... А в контексте sql vs pl/sql ?
...
Рейтинг: 0 / 0
Где лучше работать с XML: в SQL или PL/SQL?
    #37540377
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--------скрипач java не нужен, это понятно...
непонятно. java может понадобится. многое зависит от версии.
а сам вопрос слишком общий чтобы дать однозначный ответ. поставьте конкретную задачу. опишите принципы получения xml, размер, действия(преобразовани) и конечный результат. тогда можно хоть о чем то говорить. а так.... беспредметно
...
Рейтинг: 0 / 0
Где лучше работать с XML: в SQL или PL/SQL?
    #37540415
publexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vint правильно сказал, все зависит от того что вы хотите конкретно делать и с чем.
Особенностей много, например 10-ка не поддерживает ноды размером более 64kB, по 11-ю версию включительно использовать XSLT v2 можно только через java и т.д.
...
Рейтинг: 0 / 0
Где лучше работать с XML: в SQL или PL/SQL?
    #37541837
--- ---
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vint, publexus

А какие существуют принципиальные особенности (без полых шарообразных коней) для разным подходов?
Границы применимости, где стоит а где не стоит применять
* java +/-
* sql +/-
* pl/sql +/-
?

Как отправная точка для модельного примера:
1. преобразования не нужны
2. нужно просто извлечь
3. xml лежит как clob в базе

Чем лучше воспользоваться?

С уважением, --- ---
...
Рейтинг: 0 / 0
Где лучше работать с XML: в SQL или PL/SQL?
    #37541973
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извлеч куда? какой примерный объем? сложная ли структура? после извлечения что с данными делать? опять сферический конь. реализуй на sql и pl\sql это быстро. в общем случае всё будет зависеть от реализации. можно сделать чтобы и там и там было быстро или медленно)
...
Рейтинг: 0 / 0
Где лучше работать с XML: в SQL или PL/SQL?
    #37542071
--- ---
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vint, тут говорилось про какие-то "убер особенности"

publexusОсобенностей много, например 10-ка не поддерживает ноды размером более 64kB, по 11-ю версию включительно использовать XSLT v2 можно только через java и т.д.

Интересует именно принципиальная сторона вопроса.

Про то, что можно сделать "и там, и там" и будет "быстро-медленно" вопрос понятный.
Хотелось бы узнать, как народ обычно поступает, про "подводные камни".

Также, вопрос в 1-м посте так и остался без ответа:
КолмогоровАрнольдМозерСуществует подозрение, что для SQL-варианта, происходит переключение контекста ... и в сути там тот же pl.
Так ли это?

--
PS. Реализовал и на sql и на pl. В sql напрягает получающееся большое кол-во TABLE(), так что оставил пока в продкшене вариант на pl.
...
Рейтинг: 0 / 0
Где лучше работать с XML: в SQL или PL/SQL?
    #37542332
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почитай
Отдельно переключение контекста на разбор 1 xml это мелочи, которыми можно пренебречь. если у тебя разбирается xml за минуту а переключение идет за сотую секунды это для тебя существенно? лучше обратить внимание на скорость разбора.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Где лучше работать с XML: в SQL или PL/SQL?
    #39416946
Я бы сказал что для небольших пакетов типа информационных или какойнить шапки, особенно если нужно связать с реляционной таблицей, да еще одним запросом + для эргономики пользования кода лучше всего подходит XQuery. К тому же там довольно гибко можно крутить данными

Для тупого парса больших пакетов, с огромныи колвом нодов конешно же больше подходит dbms_xmldom. SQL там просто выпадет в осадок. Причем если структура более-менее строга, то лучше уйти от использования XPath в пользу производительности, тем же dbms_xslprocessor.valueof например

К примеру последние опыты показали, что XML - 100M , 1е6 узлов - парсится dbms_xslprocessor более 20 минут, а при тупом пробеге сверху вниз getNextSibling'ом - 4 минуты.

Возможны еще вариации при использовании schema-based, но тут мне пока сказать нечего
...
Рейтинг: 0 / 0
Где лучше работать с XML: в SQL или PL/SQL?
    #39417079
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пьяный шмель,
годы проходят а я так и не могу понять, НУ КАК ВЫ НАХОДИТЕ ЭТИ ТЕМЫ? их нет на первой странице. их нет на второй... вы их гуглите и специально отвечаете под серыми никами чтобы "ЗАЧЕМ"? риторический вопрос конечно. да и ответ бредовей некуда скорее всего.
...
Рейтинг: 0 / 0
Где лучше работать с XML: в SQL или PL/SQL?
    #39417146
Vint, такие темы находятся когда они совсем не то что ищешь. В общем-то как это всегда и бывает.
И отвечают для того чтобы дать какойто ориентир, там где кроме советов типа "зависит с какой ноги утром встать" больше ничего нет, тем кому придется или уже пришлось с этим столкнуться.
Вот мне бы это в свое время очень помогло и я бы сэкономил туеву хучу времени, однако надеюсь сэкономит чьето другое, чем великодушно и делюсь...

Что ты там бредового нашел? Apriori все твои доводы можно будет свести к твоему же "зависит от", о чем тут конкретно никто и не спрашивал. Так что не стоит затевать перепалку, и держи себя в руках
...
Рейтинг: 0 / 0
Где лучше работать с XML: в SQL или PL/SQL?
    #39417281
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пьяный шмельЧто ты там бредового нашел?Множество всяческих эпитетов не могут придать правдивости полному отсутствию фактов в речах серой анонимки.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Где лучше работать с XML: в SQL или PL/SQL?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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