【Oracle运维】导出数据库中的数据&SQL查询结果保存到文件

1 概述

oracle数据库最常用的是安装在Linux(Solaris/Redhat/Cent OS等)操作系统上,如果需要把数据库中指定查询SQL语句的返回结果获取到外部电脑或者给客户发送,这个时候就需要用到导出的功能。下面提供典型的3种方式。

2 导出到文件的方法

序号方法方法描述应用场景
1SQL Developer使用oracle数据库官方的客户端执行工具SQL Developer,远程连接到oracle数据库,然后执行sql查询语句,在该软件界面上针对查询结果右键保存到相应的格式的文件。如果有个电脑网络和oracle数据库安装的机器连通,同时能够安装Oracle SQL Developer软件
2SQL PlusSET 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 10000show linesize
set pagesize设置每页显示的行数,设置为0表示不分页SET PAGESIZE 0show pagesize
set heading设置是否显示列标题,当heading设置为off的时候,每页上面不显示列标题,以空白行代替。枚举值:on offSET HEADING ONshow heading
set timing设置执行查询SQL后是否显示查询耗时,默认是关闭的。枚举值:on offset timing onshow timing
set long设置查询结果是long数据类型的最大显示长度。默认值80set long 200show long
set feedback顾名思义,这个是设置执行一个操作后数据库的反馈信息。会有3中格式。on off n(具体数字)。 一般情况,如果使用oracle执行运行SQL文件,这个时候会设置为off,否则好多执行结果消息比较混乱。以及把查询结果导出到文件的时候,也设置为off比较合适。其他场景按需设置。样例1:set feedback on 样例2:set feedback off 样例2:set feedback 100show feedback
spool将查询结果输出到文件中。待需要的结果完成输出后,需要使用SPOOL OFF停止输出。SPOOL filepath.csv 完成输出后配合SPOOL OFF关闭输出show spool
  • 17
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值