笔者今日接到客户的一个新需求,需要每天定时从Oracle数据库里导出指定的表的指定数据到其FTP服务器的指定文件中备份
1.分析一下需求, 首先导出的得是txt文本并且有分行符区分字段,所以普通的exp语句导出为dmp文件的方式不能采用;
2.由于需要导出的是Oracle数据库的数据,因此考虑采用Oracle的spool工具导出数据;
3.由于需要 上传文件到指定的FTP服务器目录,因此需要掌握FTP的常用命令及调用方法;
4.考虑到每天都要导出文件,为了导出的文件不被覆盖, 需要将导出的文件改名,一般是在最后加上当前日期,起到备份的作用。
下面是具体代码实现:
新建st_exp.sql文件,复制以下内容:
set echo off
set feedback of
set newpage none
set verify off
set pagesize 0
set term off
set trims on
set linesize 1000
set heading off
set timing off
set numwidth 40
spool d:\st_exp\backup\T_ACCOUNT_INFO.txt
select id ||';'|| account_code ||';'|| account_name from t_account_info;
spool off
quit
新建st_exp.bat文件,复制以下内容