Проблема с использованием 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("Name",e.ENAME) FROM EMPLOYEE_XML e/

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


person user5113176    schedule 04.11.2015    source источник


Ответы (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> 
person Boneist    schedule 04.11.2015