如何用sqlplus执行一个sql文件和批量执行sql文件

1.sqlplus执行单个SQL文件

举个例子,假设你的sql文件是test.sql ,保存路径是D:\script,那么在sqlplus里执行它,用如下语法:
sqlplus> @D:\script\test.sql
这是windows环境下的方法,linux类似,简单来说,就是“@” 加上完整文件名(绝对路径+文件名+文件扩展名) --------------------- 本文来自 mkl34367803 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/u010523770/article/details/79013962?utm_source=copy

 

2.sqlplus批量执行sql文件

假如我们有很多sql脚本,如果一个一个sql脚本文件执行显然过于麻烦,下边我们演示sql脚本批量执行。

解决方法:将需要执行的sql脚本文件的@绝对路径 存放到一个脚本文件中,然后执行这个脚本文件就可以了

具体演示:
1.新建step.sql脚本,内容如下

@D:\Users\caojx\Desktop\testsql\test1.sql;
@D:\Users\caojx\Desktop\testsql\test2.sql;

2.sqlplus中执行

SQL> @D:\Users\caojx\Desktop\testsql\step.sql;

----本文来自 大海深处的星星 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/u013991521/article/details/79293543?utm_source=copy

 

用sqlplus的spool导文本文件

2017年02月07日 17:09:43 波特王子 阅读数:3217更多

个人分类: 数据库开发Oracle相关

  1. sqlplus user/pwd@database << END
  2. set echo off; --命令不回显 
  3. set feedback off; --不显示已选择行数
  4. set colsep |; --设置列分割符
  5. set linesize 2500; --设置每行最大长度(补空格的) 
  6. set pagesize 0; --设置不分页
  7. set heading off; --不显示列名
  8. set term off; --不显示脚本内容
  9. set trimspool on; --去掉行末的空格,针对spool的文件内容
  10. set trimout on; --去掉行末的空格,针对屏幕输出
  11. set numformat 99999999990.99; --设置数字格式,保留两位位小数,小于0时小数点前补零(0.22)
  12. set sqlnumber off; --sql换行后显示提示符(而不是行号)
  13. spool tmpfilename.txt
  14. sqlstatement;
  15. spool off
  16. END
  17. #去出多余内容
  18. sed -e 's/ //g' -e '/^SQL>/d' tmpfilename .txt > newfilename.txt

 

补充:

set numformat 99999999999.999   --保留三位小数,小于零时小数点前不补零(.222)

用colsep ,导出的字段会按字段长度自动补空格

 

 如果sql语句中用到了连接符“||”,则对输出的格式设置无效 (set numformat )

参考:

http://www.diybl.com/course/7_databases/oracle/oraclejs/20110223/553944.html 

sqlplus user guid:

http://docs.oracle.com/cd/B10501_01/server.920/a90842/toc.htm

 

你可能感兴趣的:(数据库)