Mi sembra una buona idea:chiamare una volta un proc memorizzato con il clob e fare questo chiamare l'altro proc dedicato alla gestione di una singola linea potrebbe far risparmiare un po' di I/O tra il tuo server applicativo e quello DB.
Ho una procedura molto semplice per dividere un clob riga per riga:
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, '.+');
che dà, come previsto:
PATTERN
1 azertyuiop
2 qsdfghjklm
3 wxcvbn
Puoi utilizzare questa query nel tuo primo processo memorizzato all'interno di un for line in ()
per chiamare la tua 2a procedura riga per riga.