Изглежда, че това е добра идея за мен:извикването на съхранена процедура веднъж с clob и направата на тази да извика другата процедура, предназначена да обработва един ред, може да спести някои I/O между вашия апликативен сървър и DB.
Имам много проста процедура за разделяне на clob ред по ред:
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-ра процедура ред по ред.