使用sqlplus工具导出数据到csv文件,要求文件带有时间戳

简介:

现业务部门有需求,需要每天定时把数据库里的一些特定数据导出来,最好能以日期命名加以区分存档。

    这里选用是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

具体执行效果如下图,想了解更多欢迎评论交流

9aac5227f1579bfa3d73cc55ffc2ec20.png


本文转自 青苗飞扬 51CTO博客,原文链接:http://blog.51cto.com/qingmiao/1981520

相关文章
|
7月前
|
数据库
psc文件文件如何导入数据库
psc文件文件如何导入数据库
112 0
|
6月前
|
SQL Oracle 关系型数据库
导出Oracle数据库sqlplus命令行查询的结果到文件
导出Oracle数据库sqlplus命令行查询的结果到文件
123 0
|
10月前
|
测试技术 数据安全/隐私保护
|
SQL Shell 数据库
shell 自动导出导入数据库,将导出的格式为 : 数据库名+时间.sql
mysqldump 自动导出mysql8 or mariadb10x 数据库工具,导入数据库工具,mysql 创建于删除数据库
148 0
|
数据库
pdb imp导入数据库,并更改schema
pdb imp导入数据库,并更改schema
341 0
|
关系型数据库 MySQL Shell
利用Shell将MySQL数据表导出为csv文件
完整的Shell代码如下: #!/bin/bash MYSQL=`which mysql` #show databases in mysql echo "database in mysql:" echo "*******************" $MYSQL -u root -p****** 1.
2249 0
|
Oracle 关系型数据库 Linux
oracle数据库exp命令导入导出dmp文件演示,oracle数据库备份还原功能
oracle数据库exp命令导入导出dmp文件演示,oracle数据库备份还原功能
346 0
oracle数据库exp命令导入导出dmp文件演示,oracle数据库备份还原功能
|
Oracle 关系型数据库 Linux
linux服务器oracle数据库导出dmp文件功能演示,备份数据库命令。exp命令显示command not found解决方法,EXP-00028: 无法打开dmp进行写入问题解决
linux服务器oracle数据库导出dmp文件功能演示,备份数据库命令。exp命令显示command not found解决方法,EXP-00028: 无法打开dmp进行写入问题解决
572 0
linux服务器oracle数据库导出dmp文件功能演示,备份数据库命令。exp命令显示command not found解决方法,EXP-00028: 无法打开dmp进行写入问题解决