在数据库中批量执行SQL并将结果记录到文件中

         项目中有一个步骤:数据移植。数据移植要迁移很多的表,迁移完之后我们要看一下我们迁移的表的记录数对不对。假如说有一百多张表,不可能每次都一张表一张表的去查询然后记录,这时候就得有一个脚本可以自动执行。我在数据可视化工具上怎么试都不行,同时执行一百多个查询语句,数据可视化工具上会产生一百多个窗口,没有什么用。

          最后是在sqlplus中实现的可批量查询的脚本(用项目数据库的sqlplus来执行下面的命令),虽然格式不怎么好看,不管是调整select语句的格式,还是执行后对结果文件做修改,但最重要的是已经实现批量执行。

               基本格式   

sqlplus -s $SQL_PWD <<end_of
spool 1.txt
   select语句1 
   select语句2 
spool off
end_of
             例子

sqlplus -s $SQL_PWD <<end_of
spool 1.txt
select count(*)||'t_pub_hlp'  as res  from t_pub_hlp;
select count(*)||'t_pub_msg'  as res  from t_pub_msg;
select 'T_ACM_ACBL : '||count(*) from  T_ACM_ACBL;
spool off
end_of

结果



这是最简单的spool命令,记得spool只能在sqlplus中使用。同时如果想要进一步学习spool,让它按你的想法去输出数据,可以看下我之前看过的关于spool的文章

http://blog.csdn.net/wise_man/article/details/5292656

===============

把下面的语句放到test.sql里面,然后执行start test.sql或者 @test.sql 可以得到仅有数据的记录文件

  set echo off;     
    set feedback off;
    set trimspool off;
    set heading off;
    set pagesize 0; 
    set term off;
    set timing off;
    set termout off;
set verify off;
  spool 2.txt;
  select 't_pub_hlp '||count(*)  as res from t_pub_hlp;
    select 't_pub_msg '||count(*)  as res from t_pub_msg;
  spool off 




spool 参考文章


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值