您的位置:首页 > 数据库 > Oracle

Oracle PL/SQL自学(三):数据导出

2020-05-06 04:30 1006 查看

1.前言

上一篇“文章”介绍了一些常用的SQL*PLUS命令,现在已经可以使用这些命令对数据库进行简单的定向查询。
上文链接:
Oracle PL/SQL自学(二):常用的SQL*PLUS命令

设想这样的场景:
1.1同为开发人员的同事需要一份数据文件,但他们并不会PL/SQL语言,这时需要怎么做才能方便快捷地把数据导出提供给他们?
1.2产品经理想要将大量数据置入某款商业软件(如excel),这时需要怎么做?
1.3有没有一种办法,可以通过双击执行一个简单脚本,就能实现数据的导出?

2. 导出Oracle数据库中的数据给其他系统

下文将介绍如何利用一个简单的脚本,来快速导出数据到目标目录下。

(1)在G盘建立目录G:\Oracle\sqltest
(2)打开记事本,编写脚本test1.sql,保存到新建目录下

/*test1.sql*/
set line 100
set pagesize 20
set heading off-----------------------------查询语句输出结果不显示列名
spool G:\Oracle\sqltest\data1.txt----------------------------查询语句
select job||','||ename||','||sal from emp;-------------各列以逗号分隔
spool off

(3)启动dos,进入sqlplus,@G:\Oracle\sqltest\test1 执行脚本
(4)查询结果会被记录在文件data1.txt中

3.将数据导出操作自动化

(1)新建一个记事本test2.txt,写入两条dos命令;

/*test2.txt>>*/
sqlplus /nolog @G:\Oracle\sqltest\test2.sql-------------启动但不登录数据库,执行test2.sql
exit-------------------------------------------运行结束后,关闭dos界面

注意:此处使用绝对路径。
接着另存为test2.bat(.bat是指批处理文件,即执行后自动连续执行多条命令。)

(2)在test1.sql中添加登录语句,重命名为test2.sql;

/*test2.sql*/
connect scott/scott--------------------------------------  登录数据库
set line 100
set pagesize 20
set heading off-----------------------------查询语句输出结果不显示列名
spool G:\Oracle\sqltest\data2.txt----------------------------查询语句
select job||','||ename||','||sal from emp;-------------各列以逗号分隔
spool off
exit

(3)执行test2.bat;
注意:可能出现执行后没有任何反应的情况,以管理员身份运行test2即可。

(4)查询结果会被记录在文件data2.txt中

4.Q&A

Q:执行脚本时出现问题: SP2-0310: 无法打开文件
A:路径有误;

Q:dos登录数据库时出现以下提示:

C:\Windows\System32>sqlplus
SP2-1503: 无法初始化 Oracle 调用界面
SP2-0152: ORACLE 不能正常工作

A:以管理员身份运行cmd.exe;

m0_37868329 原创文章 4获赞 0访问量 217 关注 私信
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: