Alcuni problemi:
VARHAR2
un errore di battitura e dovrebbe essereVARCHAR2
.- Potresti invece specificare i tipi di dati per fare riferimento alle colonne della tabella corrispondenti usando
table_name.column_name%TYPE
.
- Potresti invece specificare i tipi di dati per fare riferimento alle colonne della tabella corrispondenti usando
- La procedura non restituisce nulla - devi cambiare uno dei
IN
parametri a unOUT
(o unIN OUT
parametro). - La tua query non specifica un nome di tabella.
- Puoi usare
SELECT ... INTO ...
piuttosto che unCURSOR
.
Qualcosa del genere:
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;
/