C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: ストアドから複数結果を返すには?


(過去ログ 98 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■58393 / inTopicNo.1)  ストアドから複数結果を返すには?
  
□投稿者/ ケイジ (1回)-(2011/04/01(Fri) 16:49:56)

分類:[データベース全般] 

初めまして、ケイジと申します。

現在、Oracleのストアドについて学習中でして分からないところがありますのでご質問させて頂きます。

SQLで
「SELECT A,B,C FROM TEST」
といった単純なクエリの結果をそのまま返すストアドを作成しているのですが
どのように書けば結果を返せるのか、で詰まってしまっています。

調べてみるとレコード型?というものを使用すればいけるらしいということまでは
分かったのですが、それ以上のことがわかりませんでした。

お手数ですが、皆様のお知恵をお貸し下さい。よろしくお願い致します。
引用返信 編集キー/
■58400 / inTopicNo.2)  Re[1]: ストアドから複数結果を返すには?
□投稿者/ やじゅ (1873回)-(2011/04/02(Sat) 11:40:02)
やじゅ さんの Web サイト
No58393 (ケイジ さん) に返信
> 現在、Oracleのストアドについて学習中でして分からないところがありますのでご質問させて頂きます。
>
> SQLで
> 「SELECT A,B,C FROM TEST」
> といった単純なクエリの結果をそのまま返すストアドを作成しているのですが
> どのように書けば結果を返せるのか、で詰まってしまっています。

VB.NETまたはC#をODP.NETを使うと仮定した場合、REF CURSORを取得してDataTable型に返す下記サイトが有効かと思います。
http://www.atmarkit.co.jp/fdb/rensai/odpdotnet01/odpdotnet04.html

どのみち、CURSOR変数の使い方が分かればいいはずです。

引用返信 編集キー/
■58401 / inTopicNo.3)  Re[1]: ストアドから複数結果を返すには?
□投稿者/ shu (597回)-(2011/04/02(Sat) 11:55:41)
No58393 (ケイジ さん) に返信

マイクロソフトより:
http://support.microsoft.com/kb/176086/ja
引用返信 編集キー/
■58419 / inTopicNo.4)  Re[2]: ストアドから複数結果を返すには?
□投稿者/ ケイジ (3回)-(2011/04/04(Mon) 14:06:34)
皆様、色々なアドバイスありがとうございます。

ストアドパッケージを利用・カーソルを返すやり方で実現できました。

ありがとうございます。

そこで思ったのですが、パッケージを利用せず、ストアドプロシージャのみで
実現することは可能なのでしょうか?

現在、調べているのですがどこもパッケージを利用しているようなので・・・

以上、よろしくお願い致します。
引用返信 編集キー/
■58436 / inTopicNo.5)  Re[3]: ストアドから複数結果を返すには?
□投稿者/ shu (602回)-(2011/04/05(Tue) 07:49:33)
No58419 (ケイジ さん) に返信
> 皆様、色々なアドバイスありがとうございます。
>
> ストアドパッケージを利用・カーソルを返すやり方で実現できました。
>
> ありがとうございます。
>
> そこで思ったのですが、パッケージを利用せず、ストアドプロシージャのみで
> 実現することは可能なのでしょうか?
オラクル自体あまり詳しくないので予想ですが、パッケージのいらないストアドは
あまりまとまりが良くないので使わないのではないでしょうか?多分そのままストアドの
Create分を走らせれば作成出来ると思うしパッケージ名の部分を除いた呼び方をすれば
実行出来るんじゃないかなと思います。環境がこちらにはないので、ケイジ さんの方で
やってみるのが良いのではないでしょうか。
引用返信 編集キー/
■58458 / inTopicNo.6)  Re[3]: ストアドから複数結果を返すには?
□投稿者/ やじゅ (1875回)-(2011/04/06(Wed) 00:42:10)
やじゅ さんの Web サイト
No58419 (ケイジ さん) に返信
> そこで思ったのですが、パッケージを利用せず、ストアドプロシージャのみで
> 実現することは可能なのでしょうか?

型として、SYS_REFCURSORを使えば汎用的にカーソルが使えるため、パッケージを使用しなくていいようです。
(SYS_REFCURSORが使えるのはOracle9i以降で、9iより前ではパッケージにカーソルを定義する必要があったようです)

例 out_CURSOR OUT SYS_REFCURSOR
http://www.vbstation.net/tips/oracle_function_2.htm

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -