Enkele problemen:
VARHAR2
ons een typefout en moetVARCHAR2
. zijn .- U kunt in plaats daarvan de datatypes specificeren om te verwijzen naar de corresponderende tabelkolommen met behulp van
table_name.column_name%TYPE
.
- U kunt in plaats daarvan de datatypes specificeren om te verwijzen naar de corresponderende tabelkolommen met behulp van
- De procedure levert niets op - u moet een van de
IN
. wijzigen parameters naar eenOUT
(of eenIN OUT
parameter). - Uw zoekopdracht specificeert geen tabelnaam.
- U kunt
SELECT ... INTO ...
. gebruiken in plaats van eenCURSOR
.
Zoiets als dit:
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;
/