Oracle创建假脱机文件,oracle – SQLPlus – 从PL / SQL块假脱机到多个文件

得到了解决方案,不知道为什么我没想到这个…

基本思想是主sqplplus脚本生成一个中间脚本,将输出拆分为多个文件.执行中间脚本将执行对rownum施加不同范围的多个查询,并为每个查询假脱机到不同的文件.

set termout off

set serveroutput on

set echo off

set feedback off

variable v_rowCount number;

spool intermediate_file.sql

declare

i number := 0;

v_fileNum number := 1;

v_range_start number := 1;

v_range_end number := 1;

k_max_rows constant number := 65536;

begin

dbms_output.enable(10000);

select count(*)

into :v_err_count

from ...

/* You don't need to see the details of the query... */

while i <= :v_err_count loop

v_range_start := i+1;

if v_range_start <= :v_err_count then

i := i+k_max_rows;

v_range_end := i;

dbms_output.put_line('set colsep ,

set pagesize 0

set trimspool on

set headsep off

set feedback off

set echo off

set termout off

set linesize 4000

spool large_data_file_'||v_fileNum||'.csv

select data_string

from (select rownum rn, data_object

from

/* Details of query omitted */

)

where rn >= '||v_range_start||' and rn <= '||v_range_end||';

spool off');

v_fileNum := v_fileNum +1;

end if;

end loop;

end;

/

spool off

prompt executing intermediate file

@intermediate_file.sql;

set serveroutput off

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值