Функция SQL XML Exists
Функция SQL XMLExists используется для проверки существования конкретного элемента, атрибута или значения. К примеру, для проверки существования в документе XML в столбце PROD_REPORT_X информации о товаре с названием F/L можно использовать следующий запрос. PASSING PROD REPORT X);Функции EXISTSNODE и EXTRACTVALUE уникальны в Oracle. Первая из них проверяет, указывает ли заданный путь XPath хотя бы на один узел XML; вторая возвращает скалярное значение, соответствующее результату вычисления выражения XPath для экземпляра XMLType. Несмотря на отсутствие в стандарте SQL, эти функции могут пригодиться для исследования документа XML и отбора только тех записей, которые содержат заданный узел. Функция XMLCAST преобразует свой первый аргумент в скалярный тип данных SQL, определенный вторым аргументом. Первым аргументом является вычисляемое выражение SQL. В качестве второго аргумента могут быть использованы типы NUMBER или VARCHAR2, а также любые типы даты-времени. Следующий запрос возвращает только значения столбца PROD_ REPORT_X с типом XMLType, у которых дочерний элемент <name> имеет значение SPF. Обновление не основанных на схеме документов XML, хранимых как значения CLOB (неструктурированное хранение), всегда приводит к изменению всего документа XML (т. е. к его замене). Обновления документов, хранимых как двоичные XML, можно выполнить на более детальном уровне — для отдельных элементов и атрибутов. Для последовательного обновления данных XML (т. е. для изменения, вставки и удаления данных без замены всего документа XML) могут быть использованы следующие функции. updateXML. Заменяет элемент XML. Следующий запрос возвращает документ XML, в котором элемент <grade> сменил свое значение. Естественно, на исходные данные XML данная операция не влияет — модифицирован только возвращаемый документ XML.