Hallo,
ich mochte eine Multi Dimensional PLSQL Collections mit EXISTS prüfen. Für den ersten Index funktioniert das. Wenn ich einen zweiten oder Dritten dazu nehme bekomme ich einen Fehler. Probiert habe ich folgendes, für Zeile 13: Trans.EXISTS( 'N' )( 'TABLE' )( 'SYS' )
DECLARE
TYPE tTra1 IS TABLE OF VARCHAR2 (200 Byte) INDEX BY VARCHAR2(30) ;
TYPE tTra2 IS TABLE OF tTra1 INDEX BY VARCHAR2(60) ;
TYPE tTra3 IS TABLE OF tTra2 INDEX BY VARCHAR2(30) ;
Trans tTra3 ;
BEGIN
FOR hCur IN ( SELECT * FROM all_objects WHERE status = 'VALID' )
LOOP
Trans( hCur.TEMPORARY ) ( hCur.OBJECT_TYPE ) ( hCur.OWNER ) := hCur.OBJECT_NAME ;
END LOOP ;
IF Trans.EXISTS( 'N' ) THEN
DBMS_OUTPUT.PUT_LINE( Trans( 'N' )( 'TABLE' )( 'SYS' ) ) ;
END IF ;
END ;
ich mochte eine Multi Dimensional PLSQL Collections mit EXISTS prüfen. Für den ersten Index funktioniert das. Wenn ich einen zweiten oder Dritten dazu nehme bekomme ich einen Fehler. Probiert habe ich folgendes, für Zeile 13: Trans.EXISTS( 'N' )( 'TABLE' )( 'SYS' )
DECLARE
TYPE tTra1 IS TABLE OF VARCHAR2 (200 Byte) INDEX BY VARCHAR2(30) ;
TYPE tTra2 IS TABLE OF tTra1 INDEX BY VARCHAR2(60) ;
TYPE tTra3 IS TABLE OF tTra2 INDEX BY VARCHAR2(30) ;
Trans tTra3 ;
BEGIN
FOR hCur IN ( SELECT * FROM all_objects WHERE status = 'VALID' )
LOOP
Trans( hCur.TEMPORARY ) ( hCur.OBJECT_TYPE ) ( hCur.OWNER ) := hCur.OBJECT_NAME ;
END LOOP ;
IF Trans.EXISTS( 'N' ) THEN
DBMS_OUTPUT.PUT_LINE( Trans( 'N' )( 'TABLE' )( 'SYS' ) ) ;
END IF ;
END ;
Comment