现业务部门有需求,需要每天定时把数据库里的一些特定数据导出来,最好能以日期命名加以区分存档。
这里选用是oracle的sqlplus工具。理由就是简单快捷高效,可以跨平台,linux和win都可以操作,直接借助oracle的客户端就能完成,不行sqlldr那样复杂。
关于spool指令的参数,这里就不多叙述了,网上随便就能搜到,直接上脚本吧(我这里选的是windows平台)
scott.sql如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
set
colsep ,
set
feedback
off
set
heading
on
set
trimout
on
set
pagesize 50
set
linesize 80
set
numwidth 10
set
termout
off
set
trimout
on
set
underline
off
col datestr new_value filename
select
'D:\test\scott_'
||to_char(sysdate,
'yyyymmdd'
)||
'.csv'
datestr
from
dual;
spool &filename
select
a.empno,a.ename,a.sal
from
emp a;
spool
off
exit
|
注:
1
2
3
|
col datestr new_value filename
select
'D:\test\scott_'
||to_char(sysdate,
'yyyymmdd'
)||
'.csv'
datestr
from
dual;
spool &filename
|
其中这一部分是定义导出文件的变量,取得是数据库时间
另外准备一个连接数据库的bat脚本,select.bat:
1
2
|
sqlplus scott
/scott
@HSDB @scott.sql
pause
|
具体执行效果如下图,想了解更多欢迎评论交流
本文转自 青苗飞扬 51CTO博客,原文链接:http://blog.51cto.com/qingmiao/1981520