簡體   English   中英

將 XML 數據插入 Oracle 表

[英]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數據類型需要一個大小,並且您缺少列MGRSALCOMMDEPT ,因此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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM