Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Clob-Variable zeilenweise lesen

Es scheint mir eine gute Idee zu sein:Einen gespeicherten Proc einmal mit dem Clob aufzurufen und diesen den anderen Proc aufrufen zu lassen, der für die Verarbeitung einer einzelnen Zeile bestimmt ist, könnte einige E / A zwischen Ihrem Anwendungsserver und dem DB-Server einsparen>

Ich habe ein sehr einfaches Verfahren, um einen Clob Zeile für Zeile aufzuteilen:

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, '.+');

was wie erwartet ergibt:

    PATTERN
1   azertyuiop
2   qsdfghjklm
3   wxcvbn

Sie können diese Abfrage in Ihrer ersten gespeicherten Prozedur innerhalb eines for line in () verwenden um Ihre 2. Prozedur zeilenweise aufzurufen.