XML в Oracle SQL — как работать с XML-данными

🟢 XML в Oracle SQL. Введение

Использование XML в Oracle SQL XMLTYPE, функций EXTRACT, EXTRACTVALUE, XMLTABLE и XMLQUERY позволяет хранить, обрабатывать и извлекать данные из XML-документов, как встроенных в таблицы, так и внешних.

Работа с XML в Oracle востребована при интеграции с внешними сервисами, хранении конфигураций, отчётах и API.


🔤 Написание

-- Пример создания XMLTYPE
SELECT XMLTYPE('<root><item>1</item></root>') FROM DUAL;

🔄 Где используется

  • Хранение сложных структур в одном столбце

  • Парсинг XML-документов в реляционные данные

  • Интеграция с веб-сервисами

  • Формирование отчетов

  • Поддержка системных настроек в XML


🧪 10 Примеров работы с XML

1️⃣ Создание XMLTYPE напрямую

SELECT XMLTYPE('<user><name>Иван</name></user>') AS xml_col
FROM DUAL;

2️⃣ Хранение XML в таблице

CREATE TABLE config_data (
id NUMBER,
data XMLTYPE
);

3️⃣ Извлечение значения из XML с EXTRACTVALUE

SELECT EXTRACTVALUE(data, '/user/name') AS username
FROM config_data;

4️⃣ Использование EXTRACT (XMLTYPE)

SELECT data.EXTRACT('/user/name/text()').getStringVal() AS name
FROM config_data;

5️⃣ Преобразование XML в строки с XMLTABLE

SELECT x.item_name
FROM config_data,
XMLTABLE('/items/item' PASSING data
COLUMNS item_name VARCHAR2(100) PATH 'name') x;

6️⃣ XPath с условиями

SELECT EXTRACTVALUE(data, '/user[role="admin"]/name') AS admin_name
FROM config_data;

7️⃣ Формирование XML из SELECT

SELECT XMLELEMENT("employee",
XMLFOREST(first_name, last_name)) AS xml_result
FROM employees
WHERE rownum = 1;

8️⃣ Проверка структуры XML

SELECT CASE
WHEN data IS NOT NULL THEN 'XML найден'
ELSE 'Нет XML'
END AS status
FROM config_data;

9️⃣ Фильтрация по содержимому XML

SELECT *
FROM config_data
WHERE EXTRACTVALUE(data, '/settings/env') = 'prod';

🔟 Обновление XML внутри PL/SQL

DECLARE
v_xml XMLTYPE;
BEGIN
SELECT data INTO v_xml FROM config_data WHERE id = 1;
-- работа с XML в коде
END;

🧩 XML  в Oracle SQL. Заключение

Работа с XML в Oracle SQL — это гибкий способ хранения и анализа иерархических данных, особенно когда структура нестандартна или меняется. С помощью XPath, XMLTABLE и XMLTYPE вы можете легко встраивать, извлекать и трансформировать XML в удобный вид.

💡 Запомни:

  • XMLTYPE — основной тип для хранения XML

  • EXTRACT, EXTRACTVALUE — для выборки данных

  • XMLTABLE — преобразует XML в строки

  • XPath — мощный инструмент для поиска внутри XML


🔜 Следующая статья:

WRITE в Oracle SQL — как использовать буферную запись


Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии