以下のようなパッケージを作っています。
CREATE OR REPLACE PACKAGE
"TEST"."TEST_P" as
type test_type1 is table of TEST.TEST_TABLE%ROWTYPE;
procedure test2 (ret OUT test_type1 ) ;
end;
-----------------------------------
本体
-----------------------------------
CREATE OR REPLACE PACKAGE BODY
"TEST"."TEST_P" as
procedure test2( ret OUT test_type1 ) is
cursor basic_cusor is
select * from TEST.TEST_TABLE;
BEGIN
open basic_cusor;
loop
fetch basic_cusor into ret(0);
exit when basic_cusor%notfound;
END loop;
END TEST3;
end;
----------------------------------------
これをSQL Pluseから
set serveroutput on;
declare
arg1 TEST.TEST_P.test_type1;
begin
TEST.TEST_P.test2(arg1);
dbms_output.put(arg1(0).coulm1);
end;
のように実行するとエラーが出ます。
初期化処理とはどのように行えばいいのでしょうか?
最終的にはSQLServerのストアドようにテーブル
のような構造で値を返えせればいいです。
No.2ベストアンサー
- 回答日時:
こんにちは。
パッケージのプロシージャの引数で使用する場合、パッケージの宣言部においてインスタンスを作成しなければいけません・・・。
それと、作成したインスタンスをコレクションの型で初期化する必要があります。
これはIndexBy表(PL/SQL表)と違うところです。
(^^ゞ
ありがとうございます。
解決しました。
type test_type1 is table of TEST.TEST_TABLE%ROWTYPE;
を
type test_type1 is table of TEST.TEST_TABLE%ROWTYPE INDEX BY BINARY_INTEGER;
としたところエラーは消えました。
Oracleはまだはじめたばかりなので
INDEX BY BINARY_INTEGERをつけると何が変るのかは
まだ知りませんがこれから調べてみようと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 次の時間帯の勝率の合計を求めるSQL文 1 2023/07/04 17:12
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- Visual Basic(VBA) VBAの繰り返し処理表記と複数の処置条件について 1 2023/01/23 20:08
- Visual Basic(VBA) 飛び地セルの空白判定 2 2022/10/24 15:54
- Visual Basic(VBA) Excle VBA Findメソッドについて 3 2022/07/15 13:56
- Excel(エクセル) VBA ワークシート指定の1行目を選択をしたい 2 2022/08/20 18:10
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- その他(プログラミング・Web制作) VScodeでpythonプログラムの関数を実行したい 2 2022/07/13 19:24
- Excel(エクセル) 複数のブックをひとつのブック(複数のシートにまとめる)場合にシートとの順番について 5 2022/12/28 20:47
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
カーソル0件の時にエラーを発生させる
Oracle
-
【PL/SQL】FROM区に変数を使う方法
Oracle
-
PL/SQLでログを確認したい。
Oracle
-
-
4
Statement ignored というエラー
Oracle
-
5
PL/SQLをWindowsのBATファイルで実行するには
Oracle
-
6
ストアド・プロシージャをバッチから起動させて実行する方法
Oracle
-
7
CLOB型へのINSERT
Oracle
-
8
PL/SQL exceptionを呼び出すには?
Oracle
-
9
TO_CHARでのゼロ非表示について
Oracle
-
10
PL/SQLのコンパイルエラーについて(ignored)
Oracle
-
11
PL/SQLカーソルの2重FORループができません
Oracle
-
12
PL/SQLでSPOOLさせたいのですが、可能でしょうか?
Oracle
-
13
PL/SQLの変数について
Oracle
-
14
ROWNUMでUPDATEをしたいのですが・・・。
Oracle
-
15
カーソルを使って、最終行レコードの判断はどうすればよいのでしょうか。
SQL Server
-
16
バッチ処理でファイルの中身を変数に入れるやり方
その他(プログラミング・Web制作)
-
17
BINARY INTEGERとINTEGERの違いについて
Oracle
-
18
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
19
PL/SQL PLS-00103エラーについて
Oracle
-
20
SQLで列名を変数にできないでしょうか
SQL Server
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ストアド実行時のエラー「参照...
-
エクセルVBAでUserFormを起動し...
-
或るプロシージャの呼び出し元判定
-
VBA プロシージャの名前の取得
-
Accessでグローバル変数を宣言...
-
sp_executesqlを実行してもテー...
-
to_date使用時に発生するエラー...
-
SQL*Loaderでのsysdate使用
-
テーブルの主キーをdate型...
-
日付書式に変換でこまっています!
-
wordで文字の上に線を引きたい...
-
Texの枠囲み調節
-
関数IFで、指定日付範囲のデー...
-
特定の日付が第何週目にあるか...
-
ACCESS2007インポート時の空白...
-
今日の日付が入った行のデータ...
-
OutlookVBAで作成したマクロに...
-
Accessのマクロでモジュールを...
-
キャッシュを使わずにSELECTを...
-
別のスキーマのテーブルアップ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ストアドプロシジャからストア...
-
時間項目を60進数から10進数へ...
-
PL/SQL exceptionを呼び出すには?
-
ストアド実行時のエラー「参照...
-
ストアドプロシージャからアナ...
-
PL/SQLで連結(||)と結合(=>)の違い
-
ROW_NUMBER()を使用したデータ取得
-
質問:DBMS_OUTPUTの使用方法
-
パッケージ内のファンクション...
-
PL/SQLについて
-
ストアドプロシージャからスト...
-
OracleのTEXT_IOについて
-
Oracle: PACKAGE BODY の分割
-
INSERT文の書式
-
GET_DDLについて
-
PL/SQL 実行中のSID
-
Function内に記述したdbms_outp...
-
PL/SQLの例外
-
ストアドプロシージャ結果のフ...
-
プロシージャ 引数 指定
おすすめ情報