| Каталог | Индекс раздела |
| Назад | Оглавление | Вперед |
Подзапрос
В фразе-select подзапроса можно выбирать любые XML-данные и применять любые функции SQL/XML.
В фразе-from подзапроса в качестве табличного выражения можно использовать результат, возвращаемый функцией XMLTABLE. При этом временной таблице, формируемой этой функцией обязательно нужно назначать псевдоним.
В фразе-where подзапроса можно использовать предикаты VALIDATED и XMLEXISTS.
Следует иметь в виду:
Вставка и изменение XML-данных
Значения, которые записываются в XML-столбцы операторами INSERT или UPDATE, должны быть правильно форматированными документами XML (SQLSTATE 2200M).
При задании XML-значений в виде констант они представляются в виде строковых констант SQL.
При необходимости проверки правильности записываемых XML-значений по XML-схеме, значения задаются как аргументы функции XMLVALIDATE
Пример 1: В таблицу DOCUMENTS вставляется новая строка со значением столбца DOCID '004' и столбца XMLDOC, задаваемым в виде строковой константы. Правильность форматирования значения для столбца XMLDOC проверяется автоматически при любой вставке. Но здесь также проверяется правильность значения для столбца XMLDOC по XML-схеме, зарегистрированной в репозиторииXML-схем под именем DOCSCHEMA.
INSERT INTO DOCUMENTS (DOCID, XMLDOC) VALUES ('004',
XMLVALIDATE(XMLPARSE(DOCUMENT 'b4 dataC-4 data ')
ACCORDING TO XMLSCHEMA ID DOCSCHEMA) )
Пример 2:: Изменяется столбец XMLDOC в таблице DOCUMENTS в строке с DOCID '001' на символьную строку, которая выбирается из таблицы XMLTEXT и разбирается.
UPDATE DOCUMENTS SET XMLDOC =
(SELECT XMLPARSE(DOCUMENT C1 STRIP WHITESPACE)
FROM XMLTEXT WHERE TEXTID = '001')
WHERE DOCID = '001'
| Назад | Оглавление | Вперед |
| Каталог | Индекс раздела |