Einige Probleme:
VARHAR2
uns einen Tippfehler und sollteVARCHAR2
sein .- Sie könnten stattdessen die Datentypen spezifizieren, um die entsprechenden Tabellenspalten zu referenzieren, indem Sie
table_name.column_name%TYPE
verwenden .
- Sie könnten stattdessen die Datentypen spezifizieren, um die entsprechenden Tabellenspalten zu referenzieren, indem Sie
- Die Prozedur gibt nichts aus - Sie müssen einen der
IN
ändern Parameter zu einemOUT
(oder einIN OUT
Parameter). - Ihre Abfrage gibt keinen Tabellennamen an.
- Sie können
SELECT ... INTO ...
verwenden statt einesCURSOR
.
Etwa so:
CREATE OR REPLACE PROCEDURE FIRSTPROC (
ID1 IN table_name.id1val%TYPE,
ID2 OUT table_name.id2val%TYPE
)
AS
BEGIN
DBMS_OUTPUT.PUT_LINE(ID1);
SELECT id2val
INTO ID2
FROM table_name
WHERE id1val = ID1;
EXCEPTION
WHEN NO_DATA_FOUND THEN
ID2 := 0; -- Or you could use NULL
WHEN TOO_MANY_ROWS THEN
ID2 := 0; -- Or you could use NULL
END;
/