定时导出Oracle数据表到⽂本⽂件的⽅法
该实例实现了通过windows定时任务来实现了将数据库中指定数据表数据导出为txt⽂本格式。其思路是通过可执⾏的bat⽂件去调⽤导出数据脚本,然后再在windows定时任务中调⽤该bat⽂件来实现。该⽰例需要能够运⾏的sqlplus环境,因此需要安装Oracle客户端等可运⾏环境。
实现了将数据库中⽇志表数据导出到指定⽂件夹下的.log⽂件,且该⽂件的命名⽅式采⽤按天来导出的格式(如:C:\HttpLog\20130115.log),当然具体路径根据你的需求可进⾏⾃定义设置。如果你不想建⽴windows定时任务来导出该⽇志,你也可以定期双击运⾏logout.bat⽂件即可实现。
spool是sqlplus的命令,必须在sqlplus中使⽤,主要完成以标准输出⽅式输出sqlplus的命令及执⾏结果,⼀般常⽤户格式化导出oracle表数据。
对于spool数据的sql语句,最好是⾃定义格式,以⽅便程序直接导⼊ ,⽰例SQL语句如:
lect col1||','||col2||','||col3||','||col4||','||to_number(to_char(col5,'YYYYMMDD')) from table_name;
spool命令常⽤设置:
t colp','; //-域输出分隔符
t newp none //设置查询出来的数据分多少页显⽰,如果需要连续的数据,中间不要出现空⾏就把newp设置为none,这样输出的数据⾏都是连续的,中间没有空⾏之类的
t echo off; //显⽰start启动的脚本中的每个sql命令,缺省为on
t echo on //设置运⾏命令是是否显⽰语句
t feedback on; //设置显⽰“已选择XX⾏”
participatest feedback off; //回显本次sql命令处理的记录条数,缺省为on即去掉最后的“已经选择10000⾏”
t heading off; //输出域标题,缺省为on 设置为off就去掉了lect结果的字段名,只显⽰数据operator是什么意思
t pagesize 0; //输出每页⾏数,缺省为24,为了避免分页,可设定为0。
t linesize 80; //输出⼀⾏字符个数,缺省为80
t numwidth 12; //输出number类型域长度,缺省为10
t termout off; //显⽰脚本中的命令的执⾏结果,缺省为on
t trimout on; //去除标准输出每⾏的拖尾空格,缺省为off
t trimspool on; //去除重定向(spool)输出每⾏的拖尾空格,缺省为off
t rveroutput on; //设置允许显⽰输出类似dbms_output。
t timing on; //设置显⽰“已⽤时间:XXXX”。
t autotrace on; //设置允许对执⾏的sql进⾏分析。
t verify off //可以关闭和打开提⽰确认信息old 1和new 1的显⽰。
1、创建数据库⽇志表导出为⽂本⽂件的脚本l或tabout.sql
姜子牙之尚湖传说
注意:该⽇志导出后在c:\HttpLog⽬录下
SET NEWPAGE NONE
SET HEADING OFF
SET TERM OFF英语文章阅读
签署的意思>competitionSET SPACE 0
SET PAGESIZE 0
onlygirl
SET TRIMOUT ON
SET TRIMSPOOL ON
SET LINESIZE 2500
t feedback off
t echo off
SET VERIFY OFF
column v_date new_value filename;
lect to_char(sysdate,'yyyymmdd') || '.log' v_date from dual;
spool ..\HttpLog\&&filename
hit girl
lect id||','||name st;
spool off;
exit;
2、创建调⽤该脚本的logout.bat⽂件
logout.bat内容如下:
mkdir ..\HttpLog\
C:\oracle\ora92\bin\sqlplus orclur/orcl @l
许国璋说明:该bat⽂件直接在当前⽬录下创建名为HttpLog的⽂件夹,以便l脚本输出的⽂件存放到该⽬录下。其通过调⽤Oracle中sqlplus可执⾏⽂件来执⾏l脚本,所以该⽂件直接双击即可运⾏,⽆需其他操作。
3、通过windows定时任务实现⾃动定期执⾏
“在控制⾯板——任务计划——添加任务计划”中建⽴定期将数据库中⽇志表数据导出为⽂本格式(如:
理发学校哪家好你可以根据需求设置为每天对⽇志表数据进⾏导出)。根据你当前对⽇志⽂件路径的存储需求,修改上⾯两个脚本中的存储路径,在windows定时任务直接调⽤logout.bat⽂件执⾏即可。