2015-11-04 169 views
0

我正在创建一个xml类型的Oracle表(我对此是新的)。我在表格中插入了一些记录。当我尝试使用select语句从表中检索记录时,出现以下错误。在oracle-xml中使用XMLElement问题

[错误]脚本行: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) FROM EMPLOYEE_XMLË /

注:我需要使用XMLELEMENT从表中检索数据

回答

0

我使用过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>