いくつかの問題:
-
VARHAR2
タイプミスがあり、VARCHAR2
である必要があります 。- 代わりに、
table_name.column_name%TYPE
を使用して、対応するテーブル列を参照するデータ型を指定できます。 。
- 代わりに、
- プロシージャは何も出力しません-
IN
の1つを変更する必要がありますOUT
へのパラメータ (またはIN OUT
パラメータ)。 - クエリでテーブル名が指定されていません。
-
SELECT ... INTO ...
を使用できますCURSOR
ではなく 。
このようなもの:
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;
/