Issue using XMLElement in oracle- xml

282 Views Asked by At

I am creating a table of xml type Oracle(I am new to this). I inserted a few records in the table. When I try to retrieve records from the table using the select statement I get the following error.

[Error] Script lines: 404-405 ---------------------- ORA-00904: "E"."ENAME": invalid identifier Script line 404, statement line 1, column 25

Create statement:

CREATE TABLE EMPLOYEE_XML of xmltype
/

One of the insert statements

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>'))
/

When I execute the following statement I get an error SELECT XMLELEMENT("Name",e.ENAME) FROM EMPLOYEE_XML e /

Note: I need to use XMLELEMENT to retrieve the data from the table

1

There are 1 best solutions below

0
On

I'd used XMLTABLE, assuming you don't already have an XMLSCHEMA defined for the table:

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>