Databases Reference
In-Depth Information
7.3.2 Funktionen in Datenbanken
Funktionen haben einen ähnlichen Aufbau wie Prozeduren, sind aber zum Teil
einfacher, da nur Eingabeargumente übergeben werden können und ein Ergebnis-
wert zurückgegeben werden muss. Funktionen können an jeder Stelle aufgerufen
werden, wo Ausdrücke auftreten können, also insbesondere auch in der SELECT-
Klausel, in der WHERE-Klausel und in der SET-Klausel der UPDATE-Anweisung.
Die Zugriffsrechte werden wie bei Datenbankprozeduren durch GRANT EXECUTE
vergeben.
Die folgende Funktion addiert einen Prozentbetrag zu einem Geldbetrag.
-- Berechnung des Bruttobetrages aus Betrag und Prozentsatz
CREATE FUNCTION brutto (betrag DECIMAL(15,2),
proz DECIMAL(3,1))
RETURNS DECIMAL(15,2)
BEGIN
RETURN (betrag + betrag*proz*.01)
END;
Dies kann zum Beispiel in einer SELECT-Anweisung auf folgende Weise aufgeru-
fen werden:
SELECT ar.artikel_nr, ar.bezeichnung, ar.listenpreis,
brutto(ar.listenpreis, mw.prozent) AS bruttopreis
FROM artikel AS ar
JOIN mwstsatz AS mw ON ar.mwst = mw.mwst;
Als weitere Möglichkeiten definieren wir im Folgenden eine Funktion, die es in
Ad-hoc-Auswertungen auf einfache Weise ermöglicht, die Zahlungsart von Kun-
den darzustellen. Es wird die gespeicherte Information (ein Buchstabe) durch eine
Zeichenkette in Klartext dargestellt.
-- Ausgabe der Zahlungsart als Zeichenkette
CREATE FUNCTION zahl_string (kurz CHAR)
RETURNS CHAR(12)
BEGIN
CASE kurz
WHEN 'R' THEN RETURN('Rechnung')
WHEN 'B' THEN RETURN('Bankeinzug')
WHEN 'N' THEN RETURN('Nachnahme')
WHEN 'V' THEN RETURN('Vorkasse')
WHEN 'K' THEN RETURN('Kreditkarte')
ELSE RETURN('<unbekannt>')
END CASE
END;
 
Search WWH ::




Custom Search