TAKTUM Logo


Oracle Schulung
Oracle Schulung

Oracle PL/SQL Tutorial: Prozeduren und Funktionen
Erstellen von Prozeduren (procedure) und Funktionen (function) in PL/SQL

Proceduren in PL/SQL

PROCEDURE name [ ( parameter [, parameter ] ) ] IS

    Deklarationsteil

BEGIN

    Programmteil

EXCEPTION

    Ausnahmebehandlung

END;

Der prinzipielle Aufbau einer Prozedur entspricht dem eines PL/SQL - Blocks. Die Parameterliste ist optional. Falls Parameter definiert werden, so besteht die Definition aus der Parametervariablen, der Parameterart und dem Datentyp. Die Länge der Datentypen wird nicht mit angegeben, also z.B. varchar2 und nicht varchar2(80).

Es existieren, abhängig von der jeweiligen PL/SQL - Version, Einschränkungen bei der Verwendung von Datentypen als Parameter. So ist es in PL/SQL - Version 1 nicht möglich zusammengesetzte Typen zu übergeben.

Arten von Parametern

IN            Nur Eingabe (DEFAULT), call by reference

OUT           Nur Ausgabe, call by result

IN OUT        Ein- und Ausgabe, call by value and result

DEFAULT-Parameter

Beispiel:

procedure p (a in number, b in varchar2 default '0') is ...

Der Parameter b ist optional, d.h. er muß beim Aufruf der Prozedur nicht angegeben werden. In diesem Fall erhält b Wert '0'.

Parameterübergabe

  • Anhand der Position: p (10, 'hallo')
  • Anhand der Namen:
    p (b => 10, a => 'hallo') oder
    p (a => 'hallo', b => 10)

Beispiel für eine Prozedur

declare

  v_anzahl pls_integer;

  procedure neue_einheit (
           p_einheit_kurz in varchar2,
           p_bezeichnung in varchar2) is

  begin

    insert into einheit
      (einheit_kurz, bezeichnung) values
      (p_einheit_kurz, p_bezeichnung);

  end;

begin

  select count(*)into v_anzahl
    from einheit
    where einheit_kurz = 'm';

    if v_anzahl = 0 then

      neue_einheit ('m', 'Meter');

    end if;

end;

Funktionen in PL/SQL

FUNCTION name [ ( parameter [, parameter ] ) ] RETURN type IS

    Deklarationsteil

BEGIN

    Programmteil

EXCEPTION

    Ausnahmebehandlung

END;

Der Aufbau einer Funktion entspricht dem einer Prozedur mit der Ausnahme, daß Funktionen immer ein Ergebnis zurückliefern. Deshalb muß der Programmteil stets mit einem RETURN - Befehl beendet werden.

Beispiel für eine Funktion

declare

  function einheit_existiert (p_einheit_kurz in varchar2)
    return boolean is

    v_anzahl pls_integer;

    begin

      select count(*)into v_anzahl
        from einheit
        where einheit_kurz = p_einheit_kurz;

      return v_anzahl > 0;

    end;

begin

  if not einheit_existiert ('m') then

    insert into einheit
      (einheit_kurz, bezeichnung) values (m', 'Meter');

  end if;

end;



Stichwörter

Prozeduren Prozedur Procedure Funktionen Funktion function Beispiel Beispiele