prev up next


PL/SQL

Das Oracle-Datenbanksystem bietet eine prozedurale Erweiterung von SQL an, genannt PL/SQL. Hiermit können SQL-Statements zu namenlosen Blöcken, Prozeduren oder Funktionen zusammengefaßt und ihr Ablauf durch Kontrollstrukturen gesteuert werden.

Sei eine Tabelle konto mit Kontonummern und Kontoständen angelegt durch

create table konto (nr int, stand int);
Listing 9.1 zeigt einen namenlosen PL/SQL-Block, der 50 Konten mit durchlaufender Numerierung einrichtet und alle Kontostände mit 0 initialisiert.

Listing 9.1: Namenloser PL/SQL-Block  

Listing 9.2 zeigt eine benannte PL/SQL-Prozedur, welche versucht, innerhalb der Tabelle konto eine Überweisung durchzuführen und danach das Ergebnis in zwei Tabellen

create table gebucht   (datum DATE, nr_1 int, nr_2 int, betrag int);
create table abgelehnt (datum DATE, nr_1 int, nr_2 int, betrag int);
in Form einer Erfolgs- bzw. Mißerfolgsmeldung festhält.

Listing 9.2: PL/SQL-Prozedur  

Im Gegensatz zu einem konventionellen Benutzerprogramm wird eine PL/SQL-Prozedur in der Datenbank gespeichert. Sie wird aufgerufen und (später) wieder entfernt durch

execute ueberweisung (42,37,50);
drop procedure ueberweisung;

In Listing 9.3 wird eine Funktion f2c definiert, die eine übergebene Zahl als Temperatur in Fahrenheit auffaßt und den Wert nach Celsius umrechnet.

Listing 9.3: PL/SQL-Funktion  

Der Aufruf der Funktion erfolgt innerhalb einer SQL-Abfrage:

select nr, f2c(nr) from daten;

prev up next