Skip to Main Content

Oracle PL/SQL Einzel-Tipp ansehen

Hier sehen Sie unseren PL/SQL-Tipp „Rückgabe der Function ist Cursor”.

Rückgabe der Function ist Cursor

Tipp 46

  Thema: FUNKTIONEN
  Datenbank-Version: RDBMS 8.x
  Erstellt am 07.10.19
  Bearbeitet am 07.10.19
CREATE OR REPLACE PACKAGE plsql_tab IS
TYPE tab_type IS TABLE OF scott.emp%ROWTYPE
INDEX BY BINARY_INTEGER;
p_tab tab_type;
FUNCTION getptab RETURN tab_type;
END;
/
show errors
   
CREATE OR REPLACE PACKAGE BODY plsql_tab IS
FUNCTION getptab RETURN tab_type IS
BEGIN
   SELECT * BULK COLLECT INTO p_tab FROM scott.emp;
   --dbms_output.put_line(p_tab(p_tab.first).ename);
   RETURN p_tab;
END;
END;
/
show errors

REM IN SQL:Geht nicht weil Rückgabetype nur in PL/SQL definiert!
SELECT * FROM TABLE(cast(plsql_tab.gettab as ref_type));
SELECT plsql_tab.gettab FROM dual;

REM IN PL/SQL: Geht
DECLARE
my_tab plsql_tab.tab_type;
BEGIN
my_tab:=plsql_tab.getptab;
END;
/

Wussten Sie schon, dass wir auch Schulungen zu Oracle PL/SQL anbieten?