Присваивания и сравнения
Присваивания XML
Общее правило присваиваний XML состоит в том, что XML-столбцу или XML-переменной может быть присвоено только XML-значение. Исключения из этого правила следующие:
- Обработка входа для хост-переменной XML: Это особый случай правил присваивания XML, поскольку хост-переменные основываются на строковых значениях. для выполнения присваивания в XML в составе SQL строковое значение неявным образом разбирается в XML с использованием установок специального регистра CURRENT IMPLICIT XMLPARSE OPTION. Они определяют, следует ли сохранять пробельные символы, кроме тех случаев, когда хост-переменная является аргументом функции XMLVALIDATE, которая всегда убирает лишние пробельные символы.
- Присваивание строк маркерам входного параметра типа данных XML: Если маркер входного параметра имеет явный или неявный тип данных XML, значение, привязываемое (присваиваемое) этому маркеру параметра, может быть строковой символьной переменной, графической символьной переменной или двоичной символьной переменной. В этом случае строка неявным образом разбирается в XML с использованием установок специального регистра CURRENT IMPLICIT XMLPARSE OPTION для определения, следует ли сохранять пробельные символы, кроме тех случаев, когда хост-переменная является аргументом функции XMLVALIDATE, которая всегда убирает лишние пробельные символы.
- Присваивание строк непосредственно столбцам XML в операторах изменения данных: При присваивание непосредственно столбцам XML в операторах изменения данных выражение присваивания может также быть символьной строкой или двоичной строкой. В этом случае целевому столбцу присваивается результат XMLPARSE (DOCUMENT expression STRIP WHITESPACE). Поддерживаемые строковые типы данных определяются аргументами, поддерживаемыми для функции XMLPARSE. Заметьте, что это исключение в присваиваниях XML не допускает, чтобы значения символьных строк или двоичных строк присавивались переменным SQL или параметрам SQL типа XML.
- Присвоение XML строкам при выборке: При выборке XML-значений в хост-переменные при помощи оператора FETCH INTO или оператора EXECUTE INTO во встроенном SQL, тип данных хост-переменной может быть CLOB, DBCLOB или BLOB. При использовании других интерфейсов прикладного программирования (таких как CLI, JDBC или .NET), XML-значения могут выбираться в символьные, графические или двоичные строковые типы, которые поддерживаются интерфейсом прикладного программирования. Во всех этих случаях XML-значение неявно сериализуется в строку в кодировке UTF-8 и, для символьных или графических строковых переменных, преобразуется в кодовую страницу клиента.
Значения символьных или двоичных строк могут выбираться в хост-переменные типа XML. Значения в хост-переменных XML не могут присваиваться столбцам, переменным SQL или параметрам SQL типов данных строка символов или двоичная строка.