【发布时间】:2019-12-18 21:13:21
【问题描述】:
我有一个过程可以创建一个文件,其中包含从游标返回的尽可能多的记录。由于下游文件大小问题,我想将每个文件限制为 ~500k(n) 条记录(从参数表中得出的值)。如果游标中有超过 500k(n) 条记录,则应创建一个具有较新时间戳的新文件。该过程使用以下步骤。
set v_date = to_char(SYSDATE, 'YYYYMMDDHH24MISS');
set new_file_name = 'new_file_'|| v_date
open record cursor
loop
fetch bulk collect with 1000 record limit
for loop
write records to file
end loop
clear cache
close cursor loop
在投反对票之前,如果您需要更多信息,请发表评论。我正在寻找最简单的解决方案以及最有效的解决方案。
【问题讨论】:
-
您可以在循环中使用 if else 和 count 变量,该变量会随着每次迭代而增加,如果超出限制,则在 if else 块中创建新文件并重置 count 变量
标签: sql oracle plsql utl-file oracle18c