Проблема с использованием XMLElement в oracle- xml

Я создаю таблицу Oracle типа XML (я новичок в этом). Я вставил несколько записей в таблицу. Когда я пытаюсь извлечь записи из таблицы с помощью оператора select, я получаю следующую ошибку.

[Ошибка] Строки сценария: 404-405 ---------------------- ORA-00904: "E"."ENAME": неверный идентификатор Строка сценария 404, оператор строка 1, столбец 25

Создать заявление:

CREATE TABLE EMPLOYEE_XML of xmltype
/

Одно из операторов вставки

insert into EMPLOYEE_XML values (
sys.XMLType.createXML(
'<ROWSET>
<DEPT>
<DEPTNO>10</DEPTNO>
<DNAME>ACCOUNTING</DNAME>
<LOC> NEW YORK</LOC>
<EMP_LIST>
<EMP_ROW>
<EMPNO>7782</EMPNO>
<ENAME>CLARK</ENAME>
<JOB>MANAGER</JOB>
<MGR>7839</MGR>
<HIREDATE>09-JUN-1981 00:00:00</HIREDATE>
<SAL>2450</SAL>
</EMP_ROW>
<EMP_ROW>
<EMPNO>7739</EMPNO>
<ENAME>KING</ENAME>
<JOB>PRESIDENT</JOB>
<HIREDATE>17-NOV-1981 00:00:00</HIREDATE>
<SAL>5000</SAL>
</EMP_ROW>
<EMP_ROW>
<EMPNO>7934</EMPNO>
<ENAME>MILLER</ENAME>
<JOB>CLERK</JOB>
<MGR>7782</MGR>
<HIREDATE>23-JAN-1982 00:00:00</HIREDATE>
<SAL>1300</SAL>
</EMP_ROW>
</EMP_LIST>
</DEPT>
</ROWSET>'))
/

Когда я выполняю следующую инструкцию, я получаю ошибку SELECT XMLELEMENT("Имя",e.ENAME) ИЗ EMPLOYEE_XML e /

Примечание: мне нужно использовать XMLELEMENT для извлечения данных из таблицы

1 ответ

Я использовал XMLTABLE, предполагая, что у вас еще нет XMLSCHEMA, определенной для таблицы:

select XMLELEMENT("Name", x2.emp_name) emp_name
from   EMPLOYEE_XML e,
       xmltable ('/ROWSET/DEPT/EMP_LIST/EMP_ROW'
                 PASSING e.OBJECT_VALUE
                 columns emp_name varchar2(30) path 'ENAME') x2;

EMP_NAME              
----------------------
<Name>CLARK</Name>    
<Name>KING</Name>     
<Name>MILLER</Name> 
Другие вопросы по тегам