通过存储过程批量生成spool语句

过存储过程批量生成spool语句
    1     CREATE OR REPLACE PROCEDURE pro_yx_full_txt IS
    2       export_handle UTL_FILE.file_type;
    3     v_file nvarchar2(2000);
    4     BEGIN
    5       export_handle := UTL_FILE.FOPEN('MY_DIR', 'test.txt', 'w');
    6       UTL_FILE.PUT_LINE(export_handle,'set colsep '' 
    7     set trimspool on
    8     set linesize 120
    9     set pagesize 2000
   10     set newpage 1
   11     set heading off
   12     set term off
   13     
   14     ');
   15     
   16      for vtable in (select table_name from user_tables)
   17      loop
   18      v_file :='spool D:\MY_DIR\'||vtable.table_name||'.txt'||'
   19      select * from '||vtable.table_name||';
   20      spool off
   21      / ';
   22      UTL_FILE.PUT_LINE(export_handle,v_file);
   23      end loop;
   24     UTL_FILE.FCLOSE(export_handle);
   25     EXCEPTION
   26       WHEN OTHERS THEN
   27         DBMS_OUTPUT.PUT_LINE(SUBSTR(SQLERRM, 1, 2000));
   28     
   29     end;

 

转载于:https://www.cnblogs.com/keirazhang/p/11069167.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值