暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle SQLPlus假脱机到多个文件中

ASKTOM 2020-05-11
268

问题描述

我正在寻找SQL Plus中的设置,该设置将允许将数据从一个大表中提取到多个文件中,而不是单个文件中。我目前使用UNIX的拆分命令,但它增加了我的整体处理时间,并希望假脱机可以在文件生成时拆分文件。文件大小可以由记录数决定。示例: 每个文件中的100万记录。

# set command used
 set headsep off termout off pagesize 0 arraysize 5000 trimspool on feedback off  set lin 2000
 spool spool_file
# SQL to extract from single table
 SELECT  /* parallel(4) */
 ...
 ...
 FROM table;
 spool off


# UNIX拆分:
split -l 1000000 -a 10 spool_file


专家解答

假脱机一次写入一个文件。因此,要将假脱机到单独的文件,请查询前N % 的行并将假脱机到文件1。将下一个N % 假脱机到文件2等。

要并行运行,您可以有一个主脚本,调用其他脚本,在后台运行它们。例如:

file_1.sh &
file_2.sh &
file_3.sh &
#etc


由于所有查询将在不同的时间开始,这可能会导致读取一致性问题 (如果在进程开始时行更改)。

文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论