Cela me semble être une bonne idée :appeler une fois un proc stocké avec le clob et faire en sorte que celui-ci appelle l'autre proc dédié à gérer une seule ligne pourrait économiser des E/S entre votre serveur applicatif et celui de la base de données.
J'ai une procédure très simple pour diviser un clob ligne par ligne :
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, '.+');
ce qui donne, comme prévu :
PATTERN
1 azertyuiop
2 qsdfghjklm
3 wxcvbn
Vous pouvez utiliser cette requête dans votre 1ère procédure stockée dans un for line in ()
pour appeler votre 2ème procédure ligne par ligne.