SQL> SQL> -- An XML document purchaseorder.xml is placed in the directory d:\yang\oracle\xml SQL> -- The column name of the XMLType table is SYS_NC_ROWINFO$ SQL> SQL> conn system/athena@athena Connected. SQL> create or replace directory XMLDIR as 'd:\yang\oracle\xml'; Directory created. SQL> grant read on directory xmldir to public with grant option; Grant succeeded. SQL> SQL> conn jyang/jyang@athena Connected. SQL> drop table XMLTAB1; Table dropped. SQL> SQL> CREATE TABLE XMLTAB1 OF XMLType; Table created. SQL> desc xmltab1 Name Null? Type ----------------------------------------- -------- ---------------------------- TABLE of XMLTYPE SQL> -- Not here SQL> select * from user_tables where table_name='XMLTAB1'; no rows selected SQL> -- Here SQL> select * from user_objects where object_name='XMLTAB1'; OBJECT_NAME -------------------------------------------------------------------------------- SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE ------------------------------ ---------- -------------- ------------------ CREATED LAST_DDL_ TIMESTAMP STATUS T G S --------- --------- ------------------- ------- - - - XMLTAB1 57221 57221 TABLE 16-AUG-03 16-AUG-03 2003-08-16:11:15:45 VALID N N N SQL> select table_name,data_type,data_type_owner,data_length,nullable from user_tab_columns 2 where column_name='SYS_NC_ROWINFO$'; TABLE_NAME ------------------------------ DATA_TYPE -------------------------------------------------------------------------------- DATA_TYPE_OWNER DATA_LENGTH N ------------------------------ ----------- - XMLTAB1 XMLTYPE JYANG 2000 Y comment64_TAB XMLTYPE SYS 2000 Y purchaseOrder67_TAB XMLTYPE SYS 2000 Y SQL> select COLUMN_NAME,DATA_TYPE,DATA_TYPE_MOD,DATA_LENGTH,COLUMN_ID from user_tab_columns 2 where table_name='XMLTAB1'; COLUMN_NAME ------------------------------ DATA_TYPE -------------------------------------------------------------------------------- DAT DATA_LENGTH COLUMN_ID --- ----------- ---------- SYS_NC_ROWINFO$ XMLTYPE 2000 1 SQL> SQL> create or replace function getClobDocument( 2 filename in varchar2, 3 charset in varchar2 default NULL) 4 return CLOB deterministic 5 is 6 file bfile := bfilename('XMLDIR',filename); 7 charContent CLOB := ' '; 8 targetFile bfile; 9 lang_ctx number := DBMS_LOB.default_lang_ctx; 10 charset_id number := 0; 11 src_offset number := 1 ; 12 dst_offset number := 1 ; 13 warning number; 14 begin 15 if charset is not null then 16 charset_id := NLS_CHARSET_ID(charset); 17 end if; 18 targetFile := file; 19 DBMS_LOB.fileopen(targetFile, DBMS_LOB.file_readonly); 20 DBMS_LOB.LOADCLOBFROMFILE(charContent, targetFile, 21 DBMS_LOB.getLength(targetFile), src_offset, dst_offset, 22 charset_id, lang_ctx,warning); 23 DBMS_LOB.fileclose(targetFile); 24 return charContent; 25 end; 26 / Function created. SQL> SQL> INSERT INTO XMLTAB1 2 VALUES(XMLTYPE(getCLOBDocument('purchaseorder.xml'))); 1 row created. SQL> SQL> select count(1) from xmltab1; COUNT(1) ---------- 1 SQL> SQL> select * from XMLTAB1; SYS_NC_ROWINFO$ -------------------------------------------------------------------------------- ADAMS-20011127121040988PST SCOTT 2002-03-31 Julie P. Adams ADAMS R20 Julie P. Adams
Redwood Shores, CA 94065
650 506 7300
Ground The Ruling Class Diabolique 8 1/2
SQL> SQL> spool off