| Каталог | Индекс раздела |
| Назад | Оглавление | Вперед |
>>-XMLTABLE--(--+--------------------------------+--константа-выражение-xquery-для-строки-->
'-объявление-пространств-имен--,-'
>--+---------------------------------------------------+--------->
| .-,------------------------. |
| .-BY REF-. V | |
'-PASSING--+--------+----| аргумент-строки-xquery |-+-'
.-,--------------------------------------------.
V |
>--COLUMNS----| регулярное-определение-столбца-xml-table |-+--)--><
аргумент-строки-xquery:
|--выражение-переменной-xquery--AS--идентификатор--+--------+-------|
'-BY REF-'
регулярное-определение-столбца-xml-table:
|---имя-столбца--тип-данных--+--------+--+---------------+--->
'-BY REF-' '-фраза-default-'
>----+----------------------------------------------+----|
'-PATH--константа-выражение-xquery-для-столбца-'
Схема - SYSIBM. Имя функции не может задаваться как квалифицированное имя.
Функция XMLTABLE возвращает в виде таблицы результат вычисления выражения XQuery, возможно, используя заданные входные аргументы как переменные XQuery. Каждый пункт последовательности в результирующей последовательности строчного выражения XQuery представляет строку в результирующей таблице.
объявление-пространств-имен
Задает одно или более объявлений пространств имен XML, которые становятся частью сатического контекста константы-выражения-xquery-для-строки и константы-выражения-xquery-для-столбца. Набор статически известных пространств имен для выражений XQuery, которые являются аргументами для XMLTABLE является кобминацией предустановленного набора статически известных пространств имен и объявлений пространств имен, заданных в этой фразе. Пролог XQuery в выражении XQuery может замещать эти пространства имен.Если объявление-пространств-имен не задано, в выражениях XQuery применяется только предустановленный набор статически известных пространств имен.
константа-выражение-xquery-для-строки
Задает строковую константу SQL, которая интерпретируется как выражение XQuery с поддерживаемым синтаксисом языка XQuery. Строковая константа преобразуется непосредственно в UTF-8 без преобразования в кодовую страницу базы данных или секции. Выражение XQuery выполняется с использованием необязательного набора входных XML-значений и возвращает выходную последовательность XQuery, где для каждого пункта последовательности генерируется строка. Значение для константы-выражения-xquery-для-строки не должно быть пустой строкой или строкой пробелов (SQLSTATE 10505).
PASSING
Задает входные значения и способ, которым эти значения передаются в выражение XQuery заданное константой-выраженим-xquery-для-строки.BY REF
Задает, что все входные XML-аргументы по умолчанию передаются по ссылке. Если XML-значения передаются по ссылке, вычисление XQuery использует входные деревья узлов, если они есть, непосредственно из заданных входных выражений, сохраняя все свойства, включая исходную идентификацию узлов и порядок документа. Если два аргумента передают одно и то же XML-значение, сравнения идентификации узлов и порядка документа, включающее некоторые узлы, общие для двух входных аргументов, могут ссылаться на узлы в одном дереве узлов XML.Эта фраза не влияет на то, как передаются не-XML значения. Для не-XML значений создается новая копия значения при его преобразовании в XML.
аргумент-строки-xquery
Задает аргумент, который передается в выражение XQuery, заданное константой-выражениеи-xquery-для-строки. Аргумент задает значение и способ, способ передачи значения. Аргумент включает SQL-выражение, которое вычисляется. Перед передачей результата в выражение XQuery.
- Если результирующее значение имеет тип XML, оно становится входным-xml-значением. XML-значение null преобразуется в пустую последовательность XML.
- Если результирующее значение имеет тип, отличный от XML, оно должно быть преобразуемо в тип данных XML. XML-значение null преобразуется в пустую последовательность XML. Преобразованное значение становится входным-xml-значением.
Когда константа-выражение-xquery-для-строки вычисляется, переменная XQuery, представляется со значением, равным входному-xml-значению и именем, заданным фразой AS.
выражение-переменной-xquery
Задает выражение SQL, значение которого доступно в выражении XQuery, заданном константрй-выражением-xquery-для-строки во время вычисления. Выражение не может содержать выражения NEXT VALUE, выражения PREVIOUS VALUE (SQLSTATE 428F9) или функций OLAP (SQLSTATE 42903).AS идентификатор
Задает, что значение, генерируемое выражением-переменной-xquery будет передаваться в константу-выражение-xquery-для-строки как переменная XQuery. Имя переменной будет идентификатор. Ведущий знак доллара ($), который предшествует именам переменных в языке XQuery, не включается в идентификатор. Идентификатор должен быть допустимым именем переменной XQuery и ограничивается правилами для XML NCName (SQLSTATE 42634). Идентификатор не должен быть больше 128 байт длиной. Два аргумента в одной фразе PASSING не могут использовать один и тот же идентификатор (SQLSTATE 42711).BY REF
Показывает, что входное XML-значение должно передаваться по ссылке. Если XML-значения передаются по ссылке, вычисление XQuery использует входные деревья узлов, если они есть, непосредственно из заданных входных выражений, сохраняя все свойства, включая исходную идентификацию узлов и порядок документа. Если два аргумента передают одно и то же XML-значение, сравнения идентификации узлов и порядка документа, включающее некоторые узлы, общие для двух входных аргументов, могут ссылаться на узлы в одном дереве узлов XML.Если BY REF следом за выражением-переменной-xquery не задано, XML-аргументы передаются по механизму передачи по умолчанию, который обеспечивается для синтаксической конструкции, следующей за ключевым словом PASSING. Эта опция не может задаваться для не-XML значений. Если передается не-XML значение, значение преобразуется в XML; этот процесс создает копию.
COLUMNS >регулярное-определение-столбца-xml-table
Задает выходные столбцы результирующей таблицы, включая имя столбца, тип данных, механизм передачи XML и выражение XQuery для выделения значения из пункта последовательности для строки.имя-столбца
Задает имя столбца в результирующей таблице. Имя не может быть квалифицированным и одно и то же имя не может использоваться более чем для одного столбца таблицы (SQLSTATE 42711).тип-данных
Задает тип данных столбца. Синтаксис и описание доступных типов см. в описании оператора CREATE TABLE. Тип-данных может использоваться в XMLTABLE, если поддерживается XMLCAST из типа данных XML в заданный тип-данных.BY REF
Показывает, что XML -значения возвращаются по ссылке для столбцов типа XML. По умолчанию, XML-значения возвращаются BY REF. Если XML-значения возвращаются по ссылке, XML-значение включает деревья узлов, если они есть, непосредственно из результирующих значений, сохраняя все свойства, включая исходную идентификацию узлов и порядок документа. Эта опция не может задаваться для столбцов не-XML (SQLSTATE 42636). Когда обрабатывается столбец не-XML, , значение преобразуется в XML; этот процесс создает копию.фраза-default
Задает значение по умолчанию для столбца. Синтаксис и описание фразы-default см. в описании оператора CREATE TABLE. Для результирующих солбцов XMLTABLE значение по умолчанию применяется, если обработка выражения XQuery, содержащегося в константе-выражении-xquery-для-столбца, возвращает пустую последовательность.PATH константа-выражение-xquery-для-столбца
Задает строковую константу SQL, которая интерпретируется как выражение XQuery с поддерживаемым синтаксисом языка XQuery. Строковая константа преобразуется непосредственно в UTF-8 без преобразования в кодовую страницу базы данных или секции. Константа-выражение-xquery-для-столбца задает выражение XQuery, которое определяет значение в столбце с учетом пункта, который является результатом вычисления выражения XQuery в константе-выражении-xquery-для-строки. Получая пункт из результата обработки константы-выражения-xquery-для-строки как переданный извне контекстный пункт, константа-выражение-xquery-для-столбца вычисляется, возвращая выходную последовательность. Значение с столбце определяется на основе этой выходной последовательности следующим образом.
- Если выходная последовательность содержит ноль пунктов, значение в столбце обеспечивается фразой-default.
- Если возвращается пустая последовательность и не задана фраза-default, столбцу присваивается значение null.
- Если возвращается непустая последовательность, столбцу присваивается значение XMLCAST в тип-данных, заданный для столбца. При обработке этого XMLCAST может возвращаться ошибка.
Значение для константы-выражения-xquery-для-столбца не должно быть пустой строкой или строкой пробелов (SQLSTATE 10505). Если эта фраза не задана, то выражение XQuery по умолчанию - просто имя-столбца.
Если вычисление любого выражения XQuery дает ошибку, то функция XMLTABLE возвращает ошибку XQuery (SQLSTATE class '10').
Примечания:
Примеры:
SELECT U."PO ID", U."Part #", U."Product Name",
U."Quantity", U."Price", U."Order Date"
FROM PURCHASEORDER P,
XMLTABLE(XMLNAMESPACES('http://podemo.org' AS "pod"),
'$po/PurchaseOrder/itemlist/item' PASSING P.PORDER AS "po"
COLUMNS "PO ID" INTEGER PATH '../../@POid',
"Part #" CHAR(6) PATH 'product/@pid',
"Product Name" CHAR (50) PATH 'product/pod:name',
"Quantity" INTEGER PATH 'quantity',
"Price" DECIMAL(9,2) PATH 'product/pod:price',
"Order Date" TIMESTAMP PATH '../../dateTime'
) AS U
WHERE P.STATUS = 'NEW'
| Назад | Оглавление | Вперед |
| Каталог | Индекс раздела |