2016-09-05 3 views
0

Ich Abrufen von Daten aus XML für Einfügen in Tabelle. Aber ich mag auch ein zusätzliches Datum sysdate in zu folgenden xmltable Tabelle einzufügen:Oracle SQL: wie sysdate im Pfad von XMLTable übergeben wird

sample XML data: 
<employee_info>        
<employee_id>ID1234</employee_id> 
<name>John</name> 
</employee_info> 

-- This is the query Notice at CREATED_ON : 

INSERT INTO TBL_EMPLOYEE TBL (TBL.EMP_ID, TBL.Name, TBL.Created_on) 
    SELECT x.* FROM XMLTABLE('/employee_info' 
         PASSING xmlData 
         COLUMNS EMP_ID VARCHAR2(10)  PATH 'employee_id',               
           Name VARCHAR2(50)  PATH 'name',                       
           CREATED_ON DATE  PATH '<created_on>sysdate</created_on>'); 

Wie kann ich die sysdate auf Spalte CREATED_ON übergeben, die nicht Teil der angegebenen XML-Probe ist. Bitte helfen Sie. Dank

Antwort

1

Sie brauchen nicht auf XML-Ebene zu betreiben Spalte mit sysdate zu haben:

INSERT INTO tbl_employee tbl 
    (tbl.emp_id 
    ,tbl.name 
    ,tbl.created_on) 
SELECT t.emp_id, t.name, sysdate 
    FROM xmltable('/employee_info' 
       passing xmldata 
       columns 
         emp_id VARCHAR2(10) path 'employee_id', 
         NAME VARCHAR2(50) path 'name' 
       ) t; 
+0

Dank @Marcin Wroblewski – user5005768