CREATE SEQUENCE xml_tab_seq;
Next we create a procedure to
load a file into the table:
CREATE OR REPLACE PROCEDURE load_xml (p_dir IN VARCHAR2,
p_filename IN VARCHAR2) AS
l_bfile BFILE := BFILENAME(p_dir, p_filename);
l_clob CLOB;
BEGIN
DBMS_LOB.createtemporary (l_clob, TRUE);
DBMS_LOB.fileopen(l_bfile, DBMS_LOB.file_readonly);
DBMS_LOB.loadfromfile(l_clob, l_bfile, DBMS_LOB.getlength(l_bfile));
DBMS_LOB.fileclose(l_bfile);
INSERT INTO xml_tab (
id,
filename,
xml
)
VALUES (
xml_tab_seq.NEXTVAL,
p_filename,
XMLTYPE.createXML(l_clob)
);
COMMIT;
DBMS_LOB.freetemporary (l_clob);
END;
/
Assuming the
emp.xml is present in the
appropriate location it can be
loaded using:
EXEC load_xml(p_dir => 'XML_DIR', p_filename => 'emp.xml');
The contents of the
XMLTYPE can be checked
using:
SET LONG 5000
SELECT xml
FROM xml_tab;
Hope this helps. Regards
Tim...
Back
Next
|