ストアドの戻り値(配列)について
ストアドをコールして配列型の戻り値を取得したいのですが、
エラーが出てしまい原因が分かりません。
どなたかご教授頂けないでしょうか?
★PL/SQL★
CREATE OR REPLACE TYPE TBL_NUM10 AS VARRAY(10) OF NUMBER(10);
CREATE OR REPLACE PACKAGE TEST_PKG IS
TYPE TBL_NUM10 IS VARRAY(10) OF NUMBER(10);
PROCEDURE HAIRETU(O_CNT OUT TBL_NUM10);
END TEST_PKG;
/
CREATE OR REPLACE PACKAGE BODY TEST_PKG
IS
PROCEDURE HAIRETU(O_CNT OUT TBL_NUM10)
IS
TMP_CNT TBL_NUM10;
BEGIN
TMP_CNT := TBL_NUM10(0,0,0,0,0,0,0,0,0,0);
TMP_CNT(1) := 1;
TMP_CNT(2) := 2;
TMP_CNT(3) := 3;
O_CNT := TMP_CNT;
EXCEPTION WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM);
END HAIRETU;
END TEST_PKG;
/
DECLARE
O_CNT TBL_NUM10;
BEGIN
TEST_PKG.HAIRETU(O_CNT);
DBMS_OUTPUT.PUT_LINE(O_CNT(1));
DBMS_OUTPUT.PUT_LINE(O_CNT(2));
DBMS_OUTPUT.PUT_LINE(O_CNT(3));
END;
/
★実行結果★
SQL実行中に以下のエラーが発生しました。
ORA-06550: 行4、列4:
PLS-00306: 'HAIRETU'の呼出しで、引数の数または型が正しくありません。
ORA-06550: 行4、列4:
PL/SQL: Statement ignored
よろしくお願いします。
お礼
ご回答頂きましてありがとうございました。 参考になりました。