0

我正在创建一个 xml 类型的 Oracle 表(我是新手)。我在表中插入了几条记录。当我尝试使用 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 从表中检索数据

4

1 回答 1

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> 
于 2015-11-04T17:56:01.853 回答