Databases Reference
In-Depth Information
Die folgenden Aufrufe
SELECT tiername('Gnu') FROM DUAL;
SELECT tiername('Baer') FROM DUAL;
führen zu folgenden Ausgaben.
TIERNAME(GNU)
-------------------------
1 rows selected
SELECT INTO
darf nicht meh-
rere Zeilen lie-
fern
Error starting at line 2 in command:
SELECT tiername('Baer') FROM DUAL
Error report:
SQL Error: ORA-01422: Exakter Abruf gibt mehr als
die angeforderte Zeilenzahl zurück
ORA-06512: in "KLEUKER.TIERNAME", Zeile 7
Die erste Ausgabe zeigt, dass bei nicht vorhandenen Werten es
keine Fehlermeldung gibt, es wird der Wert NULL zurückge-
geben, auf den gegebenenfalls geprüft werden muss. Bei zu vie-
len Werten gibt es eine Fehlermeldung.
Statt nur eine Variable bei der INTO-Zeile anzugeben, kann
man hier auch mehrere Variablen angeben, die dann von den
Datentypen her genau zu den ausgewählten Ausgabewerten
der SELECT-Zeile passen müssen. Die folgende Prozedur gibt
die Daten zu einem Tier aus, wobei zunächst geprüft wird, ob
der Tiername genau einmal vorhanden ist.
CREATE OR REPLACE PROCEDURE tierdaten
(tiername Tier.Tname%Type)
IS
zaehler integer;
gehege Tier.Gnr%Type;
gat Tier.Gattung%Type;
BEGIN
SELECT COUNT(*)
INTO zaehler
FROM Tier
WHERE Tier.Tname=tiername;
IF zaehler<>1
THEN
DBMS_OUTPUT.PUT_LINE('Name nicht '
|| 'eindeutig');
ELSE
SELECT Tier.Gnr, Tier.Gattung
INTO gehege, gat
FROM Tier
WHERE Tier.Tname=tiername;
DBMS_OUTPUT.PUT_LINE(tiername||' ('||
262
Search WWH ::




Custom Search