
ストアドをコールして配列型の戻り値を取得したいのですが、
エラーが出てしまい原因が分かりません。
どなたかご教授頂けないでしょうか?
★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
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
以下のいずれかで通ると思います。
1)パッケージ宣言部から
TYPE TBL_NUM10 IS VARRAY(10) OF NUMBER(10); を削る
2)無名ブロックの変数宣言を以下の通りとする
O_CNT TEST_PKG.TBL_NUM10;
同じ名前の同じ型をスタンドアロンとパッケージ内と両方で宣言しているのが問題でしょう。
ご連絡が遅れてしまい申し訳ありません。
できました!!!
2)無名ブロックの変数宣言を以下の通りとする
O_CNT TEST_PKG.TBL_NUM10;
の通りに修正することで問題なく動作致しました。
この度はありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Statement ignored というエラー
Oracle
-
ストアドの戻り値で配列を返す方法
MySQL
-
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
-
4
【PL/SQL】FROM区に変数を使う方法
Oracle
-
5
カーソル0件の時にエラーを発生させる
Oracle
-
6
ストアド実行時のエラー「参照しているコレクションは初期化されていません」
Oracle
-
7
PL/SQLをWindowsのBATファイルで実行するには
Oracle
-
8
ストアドプロシジャからストアドプロシジャを呼ぶには?
Oracle
-
9
PL/SQLでログを確認したい。
Oracle
-
10
SQL*LoaderでCSVから指定した列のみインポートしたい。
Oracle
-
11
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLのエラー(~付近に不適切な...
-
Oracle 8i コンマ(,)を含むデ...
-
ACCESS ADOでupdateが効かない
-
バッチファイルからのBCP起動に...
-
GROUP BYでエラーが発生
-
Accessのレポートが新規作成で...
-
sqlで文字列を最後に追加したい
-
BCPコマンドのリダイレクト値が...
-
エクセルマクロで指定範囲内の...
-
ExcelからADOでCSVに接続してい...
-
VBAでXMLインポートエラーを無...
-
バッチプログラムでSQLSever200...
-
クエリの存在チェック
-
PostgreSqlでFunctionの作成に...
-
エクセルのグループボックス枠...
-
Access2000環境に対応するMid関...
-
ACCESS2000ディスクまたはネッ...
-
レポートが開けない。
-
Excel-VBAの「しばらくお待ちく...
-
異なるサーバーにファイルをエ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLのエラー(~付近に不適切な...
-
Oracle 8i コンマ(,)を含むデ...
-
PostgreSqlでFunctionの作成に...
-
GROUP BYでエラーが発生
-
Access2000環境に対応するMid関...
-
sqlで文字列を最後に追加したい
-
何も表示されない実行時エラー...
-
バッチファイルからのBCP起動に...
-
ACCESS ADOでupdateが効かない
-
ACCESS2000ディスクまたはネッ...
-
オブジェクト名 '<table>' が無...
-
エクセルのグループボックス枠...
-
エクセルマクロで指定範囲内の...
-
VB6より長文INSERT文でORA1756...
-
SQLServerが存在しないか、アク...
-
エクセルからSQLサーバー ...
-
ACCESSで作成したアプリケーシ...
-
SQLServer・ストアドプロシージ...
-
クエリの存在チェック
-
分散トランザクションを開始で...
おすすめ情報