Beispiel 1 - Fetch .. into

1. Beispiel - Zuweisung zu einer einzelnen Variablen

/*
 * Function: Return Variable is 16.
 */

CREATE OR REPLACE FUNCTION
Test RETURN NUMBER IS
tmpVar NUMBER;


-- Deklaration eines expliziten Cursors innerhalb einer 
-- PL/SQL-Function...
  CURSOR curTmp IS
    select 2 * 8 from dual;

BEGIN
  tmpVar := 0;
  -- Öffnen eines Cursors - entspricht dem Öffnen einer Datei,
  -- eines Datenstromes...
  -- Jetzt wird auch das entsprechende Select Statement
  -- ausgeführt.
  OPEN curTmp;
  -- Fetch holt die Daten aus dem Cursor, dem Speicher
  -- und übergibt sie einer Variable...
  -- Üblicherweise wird hier eine LOOP oder die
  -- FOR-CURSOR-LOOP verwendet, da i.d.R. mehrere
  -- Datensätze verarbeitet werden.
Bei dieser Schleife wird
  -- der Cursor implizit geöffnet und geschlossen.
  FETCH curTmp into tmpVar;
  -- Close schließt den Cursor...
  CLOSE curTmp;
  -- Übergabe- bzw. Rückgabewert...
  RETURN tmpVar;

EXCEPTION
   WHEN NO_DATA_FOUND THEN
     NULL;
   WHEN OTHERS THEN
     -- Consider logging the error and then re-raise
     RAISE;
END test;


Aufruf der Funktion aus Beispiel 1

select test from dual;

Keine Kommentare: