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

发布于:2024-07-05 ⋅ 阅读:(16) ⋅ 点赞:(0)

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

网站公告

今日签到

点亮在社区的每一天
去签到