Oracle SQL查询结果导出到文件、SET命令用法学习
- 1 概述
- 2 导出到文件的方法
- 2.2 命令行方式-sqlplus方式导出指定SQL查询的结果到csv文件
- 步骤1:system或者实际其他的oracle账号登录到sqlplus命令行界面**
- 步骤2:执行SQL查询语句前的设置目标导出文件内容格式
- 步骤3:开始设置输出到csv文件,最后退出sqlplus
- 3 帮助
- 3.1 多个SET命令用法学习(COLSEP/LINESIZE/PAGESIZE/TIMING...)
1 概述
oracle数据库最常用的是安装在Linux(Solaris/Redhat/Cent OS等)操作系统上,如果需要把数据库中指定查询SQL语句的返回结果获取到外部电脑或者给客户发送,这个时候就需要用到导出的功能。下面提供典型的3种方式。
2 导出到文件的方法
序号 | 方法 | 方法描述 | 应用场景 |
---|---|---|---|
1 | SQL Developer | 使用oracle数据库官方的客户端执行工具SQL Developer,远程连接到oracle数据库,然后执行sql查询语句,在该软件界面上针对查询结果右键保存到相应的格式的文件。 | 如果有个电脑网络和oracle数据库安装的机器连通,同时能够安装Oracle SQL Developer软件 |
2 | SQL Plus | SET COLSEP ‘,’ 设置分隔符,运用SPOOL命令指定输出到csv文件中 | 可以连接现场oracle所在的服务器上操作,但是无法安装SQL Developer进行连接现场oracle |
3 | 导回数据库备份文件 | 本地恢复现场导回来的基础数据备份,然后可以用SQL Developer或者SQL Plus都可以。 | 不允许或者不方便连接到现场oracle的数据库服务器上操作 |
2.2 命令行方式-sqlplus方式导出指定SQL查询的结果到csv文件
假如你具备root权限登录到安装oracle数据库所在的服务器上。那么按照下面的步骤可以试试:
步骤1:system或者实际其他的oracle账号登录到sqlplus命令行界面**
#su - oracle
$sqlplus /nolog
SQL>conn system
步骤2:执行SQL查询语句前的设置目标导出文件内容格式
SQL>SET COLSEP ‘,’
SQL>SET LINESIZE 32767
SQL>SET PAGESIZE 0
SQL>SET FEEDBACK OFF
步骤3:开始设置输出到csv文件,最后退出sqlplus
SQL>SPOOL /home/filepath.csv
SQL>执行具体的SQL语句
SQL>SPOOL off
SQL>exit
3 帮助
3.1 多个SET命令用法学习(COLSEP/LINESIZE/PAGESIZE/TIMING…)
SET命令 | 命令用法说明 | 样例 | 配套查询命令 |
---|---|---|---|
set colsep | 设置查询结果导出文件的分割符号 | SET COLSEP ‘,’ | show colsep |
set linesize | 设置查询结果中1行结果的显示宽度,默认80,当数据大于linesize结果会折叠显示。 | SET LINESIZE 10000 | show linesize |
set pagesize | 设置每页显示的行数,设置为0表示不分页 | SET PAGESIZE 0 | show pagesize |
set heading | 设置是否显示列标题,当heading设置为off的时候,每页上面不显示列标题,以空白行代替。枚举值:on off | SET HEADING ON | show heading |
set timing | 设置执行查询SQL后是否显示查询耗时,默认是关闭的。枚举值:on off | set timing on | show timing |
set long | 设置查询结果是long数据类型的最大显示长度。默认值80 | set long 200 | show long |
set feedback | 顾名思义,这个是设置执行一个操作后数据库的反馈信息。会有3中格式。on off n(具体数字)。 一般情况,如果使用oracle执行运行SQL文件,这个时候会设置为off,否则好多执行结果消息比较混乱。以及把查询结果导出到文件的时候,也设置为off比较合适。其他场景按需设置。 | 样例1:set feedback on 样例2:set feedback off 样例2:set feedback 100 | show feedback |
spool | 将查询结果输出到文件中。待需要的结果完成输出后,需要使用SPOOL OFF停止输出。 | SPOOL filepath.csv 完成输出后配合SPOOL OFF关闭输出 | show spool |