日期:2014-05-16  浏览次数:20376 次

使用spool工具导出oracle文本数据

1、win下批处理调度文件
data_spool.bat

F:\oracle\product\10.2.0\db_1\BIN\sqlplus tax/tax@orcl @D:\PDM_SQL\spool\spool_ctl.spl >>D:\PDM_SQL\spool\spool_info.log


2、文本导出结构控制文件
spool_ctl.spl

set trimspool on
set term off
set feedback off
set pagesize 0
set line 32767
----人员信息
@D:\PDM_SQL\spool\select\tb_pep_insur_info.select;
----保险信息
@D:\PDM_SQL\spool\select\tb_pep_info.select;
exit


3、导出位置及select查询文件
tb_pep_info.select

----人口信息
spool D:\PDM_SQL\spool\out_data\tb_pep_info.txt
SELECT sfzhm||'|'|| xm||'|'|| zym||'|'|| mz_cd||'|'|| xb_cd||'|'|| csny||'|'|| whcd_cd||'|'|| zzmm_cd||'|'|| lxdh||'|'|| rylx_cd||'|'|| hjxxdz||'|'|| xjzddz||'|'|| data_dt FROM tb_pep_info;
spool off 


tb_pep_insur_info.select

----保险信息
spool D:\PDM_SQL\spool\out_data\tb_pep_insur_info.txt
select sfzhm||'|'|| xm||'|'|| cblx_cd||'|'|| cbrq||'|'|| jflx_cd||'|'|| jfje||'|'|| ybsblx_cd||'|'|| jfrq FROM tb_pep_insur_info;
spool off 


4、说明
(1)、记录此spool过程的文章并不是说它有多难或复杂,而是便于以后查找的方便。
(2)、“set line 32767”,其中32767是可以设置的最大值,当设置的数据大于32767的时候,每行显示的长度就会变成默认的80多;这是在win下经过测试得出的,在其他系统下可能会有不同。
(3)、可以通过本文中的方式,实现设置一次结构控制参数而完成多个表的导出。
(4)、“sqlplus
tax/tax@orcl @D:\PDM_SQL\spool\spool_ctl.spl”,一直有一个误区,总以为有一个@后跟连接名之后就不能再用@后跟脚本文件了;其实不然,oracle没那么低级。
(5)、select拼合脚本可以通过在pl/sql工具中,左键该表或视图拉至sql语句编辑区选择“select”可得出些表的查询语句,然后用“||'|'||”替换逗号即可;方便、快速、实用。