私には良い考えのようです。ストアドプロシージャをclobで1回呼び出し、この1つを呼び出して、1行を処理するための専用の別のプロシージャを呼び出すと、アプリケーションサーバーとDBサーバー間のI/Oを節約できます。
>CLOBを1行ずつ分割する非常に簡単な手順があります:
create table test (c clob);
insert into test (c) values (
'azertyuiop
qsdfghjklm
wxcvbn
');
select to_char(regexp_substr(test.c, '.+', 1, level)) pattern
from test
connect by level <= regexp_count(test.c, '.+');
予想通り、次のようになります。
PATTERN
1 azertyuiop
2 qsdfghjklm
3 wxcvbn
このクエリは、for line in ()
内の最初のストアドプロシージャで使用できます。 2番目のプロシージャを1行ずつ呼び出します。