КаталогИндекс раздела
НазадОглавлениеВперед


Операторы манипулирования данными

Подзапрос

В фразе-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'

НазадОглавлениеВперед
КаталогИндекс раздела