Oracle
 sql >> Base de données >  >> RDS >> Oracle

Lecture de la variable clob ligne par ligne

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.