Nogle problemer:
VARHAR2
os en tastefejl og bør væreVARCHAR2
.- Du kan i stedet angive datatyperne for at referere til de tilsvarende tabelkolonner ved hjælp af
tabelnavn.kolonne_navn%TYPE
.
- Du kan i stedet angive datatyperne for at referere til de tilsvarende tabelkolonner ved hjælp af
- Proceduren udsender ikke noget - du skal ændre en af
IN
parametre til enOUT
(eller enIND UD parameter).
- Din forespørgsel angiver ikke et tabelnavn.
- Du kan bruge
SELECT ... INTO ...
i stedet for enCURSOR
.
Noget som dette:
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;
/