Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Lendo a variável clob linha por linha


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.