好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Oracle SQLPlus导出数据到csv文件的方法

时不时地我们需要导出一些数据用作备份、查看报表等,如果用 Sql Developer 导出会非常慢。而用 SqlPlus ,则速度非常快。

准备 SQL 执行文件 export.sql :

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

set colsep ,

set feedback off

set heading off

set newp none

set pagesize 0

set linesize 200

set trimout on

 

spool /data/export. csv

 

select t. name || ',' ||t.age|| ',' ||t.salary|| ',' ||t.email|| ',' ||t.title

from employee t

where t.age < 50

order by t.salary desc ;

 

spool off

exit

说明:

set colsep  , #分割符
set feedback off #回显本次sql命令处理记录条数
set heading off # 输出标题
set newp none #设置查询出来的数据分多少页显示,如果需要连续的数据,中间不要出现空行就把newp设置为none
set pagesize 0 # 输出每页行数,为了避免分页设置为0
set linesize 200 # 每行大小,如果设置太小,会分行,最好是超好输出最大值
set trimout on # 去除标准输出每行的拖尾空格
set termout off #显示脚本中的命令的执行结果
set echo on #设置运行命令是否显示语句
set numwidth 12 # 输出number类型域长度

执行:

?

1

sqlplus user /pass@db @export.sql

可以通过 SQL 指定文件名:

?

1

2

3

col datestr new_value filename

select '/data/export.' ||to_char(sysdate, 'yyyymmdd' )|| '.csv' datestr from dual;

spool &filename

ps:下面看一个例子通过sqlplus导出数据到csv
例子

?

1

2

3

4

5

6

7

8

9

10

11

12

[oracle@localhost ~]$ cat data.sql

set echo off

set feedback off

set linesize 100

set pagesize 0

set sqlprompt ''

set trimspool on

spool data.csv

select id || ',' || val from testtab;

spool off

exit

[oracle@localhost ~]$

总结

到此这篇关于 Oracle SQLPlus 导出数据到csv文件的方法的文章就介绍到这了,更多相关oracle 导出数据csv文件内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/larrydpk/p/12913924.html

查看更多关于Oracle SQLPlus导出数据到csv文件的方法的详细内容...

  阅读:63次