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

Oracle PL/SQL:Wie DEREF von einem VARRAY von REFs?

Das DEREF muss in einer SQL-Anweisung enthalten sein: http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28371/adobjbas.htm#i463707

das funktioniert

CREATE OR REPLACE TYPE BODY PIZ AS
  MEMBER PROCEDURE DISPLAY_LOCS IS
  x varchar2(30) ;
  BEGIN
    FOR IDX IN SELF.LOCS.FIRST..SELF.LOCS.LAST LOOP
        select DEREF(SELF.LOCS(IDX)).GET_NAME() into x from dual ;
      DBMS_OUTPUT.PUT_LINE(x); --this is the line that generates the error
    END LOOP;
  END;
END;
/

Schöner Testfall zum Reproduzieren!