Формирование данных 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.

Наслаждайтесь!

Другие вопросы по тегам