Skip to Main Content

Database Software

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

using sqlldr to load XML files and the file name ? or access the file name

503668Aug 2 2006 — edited Sep 11 2006
I can use sqlldr to load the XML files when I declare the target table of XMLTYPE, but I need to load the filename and a sequence also with the XML in a table so we can mark wether the file passed validation or not.

something like ....

Create table test1
(
lobfn varchar(200),
load_number number,
XML_COL XMLTYPE
);

--------------- here is my sqlldr command
sqlldr xml_user/xml_user load_test1.ctl

LOAD DATA
INFILE *
INTO TABLE test1
append
xmltype(XML_COL)
(
lobfn FILLER char TERMINATED by ',',
XML_COL LOBFILE(lobfn) TERMINATED BY EOF
)
BEGINDATA
filename1.xml
filename2.xml
...
filename64.xml
---------------------------------------------------
sqlldr comes back and says "commit point reached - logical record count 64
but when I select count(*) from test1; it returns 0 rows.
and when I

SELECT X.* FROM tst1 P2,
XMLTable ( '//XMLRoot//APPLICATION'
PASSING P2.XML_COL
COLUMNS
"LASTNAME" CHAR(31) PATH 'LASTNAME',
"FIRSTNAME" CHAR(31) PATH 'FIRSTNAME'
) AS X;

It tells me invalid identifier ,
Do I need to use a function to get the XML_COL as a object_value ???
-----------------------------------------------------------------------------------
But when I create the table like
create table test1 of XMLTYPE;
and use sqlldr it works, but I dont have the file name, or dont know how to access it ??

and I can use
SELECT X.* FROM tst1 P2,
XMLTable ( '//XMLRoot//APPLICATION'
PASSING P2.object_value
COLUMNS
"LASTNAME" CHAR(31) PATH 'LASTNAME',
"FIRSTNAME" CHAR(31) PATH 'FIRSTNAME'
) AS X;
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Oct 9 2006
Added on Aug 2 2006
14 comments
1,568 views