[英]Inserting XML data into Oracle table
我有一个包含 HUGECLOB 数据类型的 XML 的表,我需要将 CLOB 数据提取为 XML 并获取一些特定的 XML 标记值以将其插入到另一个表中。
我使用 dbms_lob 获取 XML ,以下是将 XML 插入另一个表的代码。
create or replace procedure xml_into_table(l_xml in xmltype)
as
begin
insert into emp( EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPT)
SELECT * FROM xmltable('employees' passing l_xml
columns EMPNO NUMBER PATH ' /employee/empno',
ENAME VARCHAR2 PATH '/employee/ename',
JOB VARCHAR2 PATH '/employee/job',
HIREDATE DATE PATH '/employee/hiredate');
END;
/
错误(7,56):PL/SQL:ORA-00906:缺少左括号。
有人可以指导我,实现这一目标的正确方法是什么。
VARCHAR2
数据类型需要一个大小,并且您缺少列MGR
、 SAL
、 COMM
和DEPT
,因此SELECT *
将仅获得 4 列,而不是您在INSERT
中命名的 8 列。
create or replace procedure xml_into_table(l_xml in xmltype)
as
begin
insert into emp( EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPT)
SELECT empno,
ename,
job,
NULL,
hiredate,
NULL,
NULL,
NULL
FROM xmltable(
'employees'
passing l_xml
columns
EMPNO NUMBER PATH ' /employee/empno',
ENAME VARCHAR2(200) PATH '/employee/ename',
JOB VARCHAR2(200) PATH '/employee/job',
HIREDATE DATE PATH '/employee/hiredate'
);
END;
/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.