我想从表(xmltype)中获取数据并保存到磁盘上的文件中。
set serveroutput on;
declare
p_directory varchar2(10) := 'DMP_XML';
p_fileName varchar2(10) := 'test.xml';
file_handle UTL_FILE.FILE_TYPE;
clob_part VARCHAR2(1024);
clob_length NUMBER;
offset NUMBER := 1;
clob_in clob;
v_xml_data xmltype;
begin
file_handle := UTL_FILE.FOPEN(p_directory, p_fileName, 'W');
UTL_FILE.PUT_LINE(file_handle, '<?xml version="1."?>');
select
extract(
XMLELEMENT("TAG",
XMLAGG(
XMLELEMENT("Col1", Col1 ||''|| Col2) order by col1)),'/"') as xml_test
into v_xml_data
from table1;
clob_in := v_xml_data.GETclobVAL();
clob_length := LENGTH(clob_in);
LOOP
EXIT WHEN offset >= clob_length;
clob_part := DBMS_LOB.SUBSTR (clob_in, 1024, offset);
--DBMS_OUTPUT.PUT_LINE(clob_part);
UTL_FILE.PUT(file_handle, clob_part);
offset := offset + 1024;
END LOOP;
UTL_FILE.FFLUSH(file_handle);
UTL_FILE.fclose(file_handle);
end;
我已经测试了第一行已添加到我的 test.xml 文件中。此外,我看到 clob_part 具有字符串值(取消注释 DBMS_OUTPUT 时)。
而且我无法保存带有数据的文件。