第一步,用sys用户登录oracle,创建一个目录变量MY_XML,将此目录的读写权限授予scott用户,同时将utl_file包的执行权限授予scott

create directory MY_XML as 'c:\';

grant write,read on directory MY_XML to scott;

grant execute on utl_file to scott;

 

第二步,注销sys用户,改用scott用户登录oracle,执行如下操作即可实现。

 

declare

src clob;

xmlfile utl_file.file_type;

length number;

buffer varchar2(16384);

begin

src :=dbms_xmlquery.getxml('select * from new');

length :=dbms_lob.getlength(src);

dbms_lob.read(src,length,1,buffer);

xmlfile :=utl_file.fopen('MY_XML','exp.xml','w');

utl_file.put(xmlfile,buffer);

utl_file.fclose(xmlfile);

end;

 

(注意:目录变量必须为大写)

走了不少弯路,查了好多资料,整理出来,方便使用。