Databases Reference
In-Depth Information
THEN DBMS_OUTPUT.PUT_LINE('A gleich B');
ELSE DBMS_OUTPUT.PUT_LINE('A ungleich B');
END IF;
A:=B;
B.x:=2;
IF A.x=B.x AND A.y=B.y
THEN DBMS_OUTPUT.PUT_LINE('A gleich B');
ELSE DBMS_OUTPUT.PUT_LINE('A ungleich B');
END IF;
-- nicht erlaubt C:=A;
END;
Die Prozedur wird mit
EXECUTE RecordTest;
ausgeführt und hat folgende Ausgaben.
A.x= 1
A.y= 2
B.x=
B.y=
A gleich B
A ungleich B
Man kann daraus ableiten, dass man Record-Variablen nur
attributsweise Werte zuweisen kann, dass nicht initialisierte
Variablen den Startwert NULL haben, dass auch die Ausgabe
nur attributsweise möglich ist und dass bei einer Zuweisung
alle Werte kopiert werden, also keine Referenzen zwischen den
Attributen aufgebaut werden.
Bisher wurden nur Prozeduren vorgestellt, allerdings lassen
sich alle Überlegungen direkt auf Funktionen übertragen. Die
allgemeine Syntax sieht wie folgt aus.
CREATE [OR REPLACE] FUNCTION <Funktionsname>
( <Parameterliste> ) RETURN <Ergebnistyp> IS
<LokaleVariablen>
BEGIN
<Funktionsrumpf>
END;
Der Funktionsrumpf wird durch einen RETURN -Befehl, der von
einem Wert oder einer Variable vom Typ <Ergebnistyp> gefolgt
wird, beendet. Als Beispiel soll folgende einfache Funktion die-
nen, mit der überprüft wird, wieviele Teiler eine Zahl hat.
PL/SQL-
Funktion
CREATE OR REPLACE FUNCTION AnzahlTeiler
(zahl INTEGER)
254
Search WWH ::




Custom Search