Databases Reference
In-Depth Information
gat||') in Gehege '||gehege||'.');
END IF;
END;
Die folgenden Aufrufe
EXECUTE tierdaten('Laber');
EXECUTE tierdaten('Horst');
liefern
Laber (Baer) in Gehege 1.
Name nicht eindeutig
Soll eine vollständige Zeile einer Tabelle in einer Ergebnisvari-
ablen festgehalten werden, gibt es eine weitere komfortable Lö-
sung. Durch
<Tabellenname> %ROWTYPE
ist ein Record-Datentyp definiert, der genau zu einer Zeile der
Tabelle passt. Die vorherige Prozedur sollte also wesentlich
eleganter wie folgt programmiert werden.
Nutzung von
Spaltentypen
CREATE OR REPLACE PROCEDURE tierdaten2
(tiername Tier.Tname%Type)
IS
zaehler integer;
info Tier%ROWTYPE;
BEGIN
SELECT COUNT(*)
INTO zaehler
FROM Tier
WHERE Tier.Tname=tiername;
IF zaehler<>1
THEN
DBMS_OUTPUT.PUT_LINE('Name nicht '
|| 'eindeutig');
ELSE
SELECT *
INTO info
FROM Tier
WHERE Tier.Tname=tiername;
DBMS_OUTPUT.PUT_LINE(tiername||' ('
||info.Gattung||') in Gehege '
||info.Gnr||'.');
END IF;
END;
Ist man nicht nur an einzelnen Tabellenzeilen interessiert, muss
man eine Möglichkeit haben, die resultierende Ergebnistabelle
abzuarbeiten. Hierzu werden sogenannte Cursor benutzt, die es
mehrere Ergeb-
niszeilen mit
Cursor
263
Search WWH ::




Custom Search