Parece ser uma boa ideia para mim:chamar um proc armazenado uma vez com o clob e fazer com que este chame o outro proc dedicado a lidar com uma única linha pode economizar alguma E/S entre o servidor do aplicativo e o banco de dados.
Eu tenho um procedimento muito simples para dividir um clob linha por linha:
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, '.+');
que dá, como esperado:
PATTERN
1 azertyuiop
2 qsdfghjklm
3 wxcvbn
Você pode usar esta consulta em seu primeiro proc armazenado dentro de um
for line in ()
para chamar seu 2º procedimento linha por linha.