Det verkar vara en bra idé för mig:att anropa en lagrad proc en gång med cloben och få den här att anropa den andra proc som är dedikerad för att hantera en enstaka linje kan spara lite I/O mellan din applikativa server och DB-servern.
Jag har en mycket enkel procedur för att dela en klump rad för rad:
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, '.+');
vilket ger, som förväntat:
PATTERN
1 azertyuiop
2 qsdfghjklm
3 wxcvbn
Du kan använda den här frågan i din första lagrade proc i en for line in ()
att ringa din andra procedur rad för rad.