第一步需要先建一个oracle directory。
create directory TEMP_DIR as '/home/oracle/temp';
declare
xml_str clob;
xml_file Utl_File.file_type;
offset NUMBER := 1;
buffer varchar2(4000);
buffer_size number := 2000;
begin
xml_file := Utl_File.fopen('TEMP_DIR','l360_lookup_values.xml','W');
xml_str := DBMS_XMLGEN.getXML('select * from fnd_lookup_values where lookup_type like ''L360%''');
while(offset < dbms_lob.getlength(xml_str))
loop
buffer := dbms_lob.substr(xml_str,buffer_size,offset);
utl_file.put(xml_file,buffer);
utl_file.fflush(xml_file);
offset := offset + buffer_size;
end loop;
utl_file.fclose(xml_file);
dbms_lob.freetemporary(xml_str);
end;
大概代码是这样的,可以封装为一个procedure。DBMS_XMLGEN这个包可以将一个sql查询的结果转化为xml格式的数据。
由于没有api可以直接将clob写到文件系统里,所有需要先将clob逐次读到一个buffer里,然后通过utl_file将数据写到文件系统。
需要注意的是buffer_size不能跟buffer的长度一样大,因为如果有中文这种双字节的字符的时候,就会出现buffer大小不够的错误。还有需要调用utl_file.fflush。因为如果utl_file.put调用使缓冲区的字符达到了32767以后,就会报缓冲区不够大的错误。dbms_lob.freetemporary这个存储过程是否一定要调用,暂时还不是很清楚,不知道oracle会不会自动垃圾回收。最好还是调用一下吧,作用是释放clob占用的资源。
分享到:
相关推荐
plsql导出数据到excel常用的三种方法,(1)直接导出;(2)转换导出方式;(3)导出后转换格式;
在不安装oracle客户端的前提下,是用plsql,实现方法。
使用PLSQL导入导出oracle数据的几种方式说明
怎么定时自动将SQL数据导出为Excel文件
oracle百(千)万级表数据导出工具,用于Oracle数据库导出大数据量表 ,保存格式如csv
我们一直在寻求一个好的工具,这个工具可以将业务数据库的表数据进行导出,并且支持灵活的数据导入要求,以便进行测试数据库搭建和紧急故障恢复。 本文就plsqldev工具提供的“PL/SQL Developer”导出表的工具做一个...
介绍OracleSQL和PLSQL 希望对大家有帮助
PLSql 很好的一个控制数据库工具(ORACLE)
oracle_plsql语句大全oracle_plsql语句大全oracle_plsql语句大全
ORACLE相关学习资料 SQL and PLSQL
今天突然懒得去找以前的建表文件,而想用SLSQL直接从一个数据库中导出信息,导入到另外一个数据库中,发现自己对PLSQL的导入导出完全不了解。下面详细记录一下。 导出步骤: 1 tools ->export user object
PLSQL显示乱码、导出问题的解决方法
Oracle PLSQL 编程手册(SQL大全)
ORACLE_PLSQL编程详解 SQL语言只是访问、操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发。PL /SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下...
plsql批量导入数据
Oracle客户端 plsql9安装版,含注册码
使用PL\SQL_Developer工具,oracle表的导入和导出
oracle9i plsql fundamentals
Oracle 10g 的操作命令大全数据库的建立以及操作 表的操作,查询等,plsql的说明以及全部常用的命令。很全的。
可以使用ORACLE数据工具管理存储在服务器中的PL/SQL程序的安全性。可以授权或撤销数据库其他用户访问PL/SQL程序的能力。 . PL/SQL代码可以使用任何ASCII文本编辑器编写,所以对任何ORACLE能够运行的操作系统都是...