Формирование данных XML с использованием типов объектов
Мне нужно сгенерировать XML с использованием типов объектов Oracle, и элемент будет иметь атрибуты. Сложность заключается в том, что элемент и атрибут будут иметь значения, как показано ниже
сотрудник> ename id=100> Аарон /ename> / сотрудник>
Требуется достичь этого только с типами объектов, а не использовать xmlelement,xmlattributes, поскольку реальный сценарий содержит большое количество столбцов.
Create or replace type ename_type as object("@id" number,ename varchar2(100));
Пожалуйста, помогите написать запрос SQL
Select xmlement("employee",xmlforest()) from employees;
1 ответ
Хорошо, вот оно:
DDL:
create type ename_type as object (
id number,
ename varchar2(100)
);
create table employees of ename_type;
insert into employees values ( ename_type( 1,'dani') );
DML для генерации вашего XML:
Select XMLELEMENT("employee",
XMLATTRIBUTES(e.id AS "ID"),
xmlforest(e.name))
from employees e;
Пояснение:
на DDL мы создаем тип и таблицу объектов. Затем в DML мы применяем функцию XMLELEMENT как к атрибутам, так и к лесу.
Больше информации:
Вы можете узнать об этом в Справочной документации по базе данных SQL.
Наслаждайтесь!