- ベストアンサー
カーソルを返すストアドパッケージについて。
現在PL/SQLを勉強中です。今回 SELECTした結果のカーソルを返すストアドを作成しておりまして いろいろなページを参考にし、なんとか成功しました。 今回作成したカーソルを返すストアドはストアドパッケージで 作成しました。 これをストアドプロシジャーで作成したいのですがこれは プログラム的に可能ですか? ストアドパッケージ→ストアドプロシジャーに変更するのは 特に意味はありませんが実験的に作成しておりますがまったく うまくいかず。。。 技術的に無理なのでしょうか? かなり初心者なので質問の内容がおかしかったらすいません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは 私も初心者の域なんで、なんともいえないんですけど。 パッケージ内にしろ、単独にしろ、プロシージャの引数に、 OUTもしくはINOUTでデータ型指定する必要がありますよね。 パッケージ内だと、そのプロシージャの前に、 カーソル変数を宣言しておけるので、それがそのまま使えますけど、 単独のプロシージャの場合、宣言しようがないので、この方法だとダメです。 タイプオブジェクトにカーソル変数作れるかというと、それも出来ません。 (Ver8.1.7.0.0) タイプオブジェクトにテーブル構造作ってそちらに値を渡す方法なら出来ます。 (カーソルを渡すという主旨から外れてしまいますが。) 私が知る限りではこのような感じです。 最近PL/SQL触ってないので、間違ってるかも知れませんが。 後、Oracle関連の技術的なことは、参考URLの掲示板を検索してみてはいかがでしょうか。 質問する場合には、登録が必要ですが。 また、サンプルコードも置いてあるので勉強になりますよ。
- 参考URL:
- http://otn.oracle.co.jp/
その他の回答 (1)
- funamin
- ベストアンサー率0% (0/6)
可能だと思います。 パッケージとは、基本的にストアドファンクション、ストアドプロシジャを共有宣言も含めひとつにまとめたものであるので、ストアドプロシジャー単独でも 大丈夫だと思います。
お礼
ありがとうございます。 >タイプオブジェクトにカーソル変数作れるかというと、それも出来ません。 そうなんです。 ストアドプロシージャの引数に、カーソルのデータ型を どのように指定するかがかなり迷っていたのです。。。 でもやっぱり無理だったんですね。 参考リンクもありがとうございました。早速登録して 勉強します。