
PL/SQLのカーソルについて
お世話になります。
Oracle11gで開発しています。
初心者です。
下記ストアドプロシージャの「zokuseisyutoku」で取得した
値(入数、重量、才数、ロケーション)を受けて、別のストアドプロシージャ
「Hyouji」の変数(irisuu、jyuryou、saisuu、lokesyon)に代入して得られた
内容をGridviewに表示させたいと思っています。
現在は、別々のストアドプロシージャなのですが、
一つに出来るものなら一つのストアドプロシージャにまとめたいの
ですが、どなたかご親切な方、ご教授頂きたく宜しくお願い致します。
記
(1)ストアドプロシージャ1つ目
create or replace procedure zokuseisyutoku
(
sItemClassinコード表.品番%type,
out_valoutpls_integer,
out_cursoroutsys_refcursor
)
as
begin
if sItemClass is null then
open out_cursor for
select入数, 重量, 才数, ロケーション
fromコード表
;
else
open out_cursor for
select入数, 重量, 才数, ロケーション
fromコード表
where品番 = sItemClass
;
end if;
out_val := 1;
(2)ストアドプロシージャ2つ目
create or replace procedure Hyouji
(
irisuu in部材表.入数%type,
jyuryou in部材表.重量%type,
saisuu in部材表.才数%type,
lokesyon in部材表.ロケーション%type,
out_valoutpls_integer,
out_cursoroutsys_refcursor
)
as
begin
open out_cursor for
select b.資材名,b.色,b.種類,b.サイズ,b.棚番号
FROM 部材表 a,資材項目 b
WHERE a.ID = b.資材ID
AND a.入数 = irisuu AND a.重量 = jyuryou AND a.才数 = saisuu AND ロケーション = lokesyon
;
out_val := 1;
end;
end;
No.1ベストアンサー
- 回答日時:
ループを二つに分ける必要ってありますか?
この処理であれば一回のSQLで欲しいデータが取得できそうな気がしますが。
create or replace procedure hoge
(
sItemClass in コード表.品番%type,
out_val out pls_integer,
out_cursor out sys_refcursor
)
is
begin
open out_cursor for
'select b.資材名,b.色,b.種類,b.サイズ,b.棚番号'
|| ' FROM 部材表 a,資材項目 b,コード表 c'
|| ' WHERE a.ID = b.資材ID'
|| ' AND a.入数 = c.入数 AND a.重量 = c.重量 AND a.才数 = c.才数 AND a.ロケーション = c.ロケーション '
|| case when sItemClass is null then '' else 'AND c.品番 = ' || sItemClass end;
out_val := 1;
end;
/
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# [至急]Project Euler:#17Number letter countsコード入力出力解説 2 2022/09/24 02:46
- 英語 英文の添削お願いします。【長文です。】 マッチングアプリで相手を言い負かしている時のやつです。 色々 1 2023/07/01 02:12
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- 英語 英語ができる方に質問です。 以下の文がネイティブの方に伝わるかどうかを確認していただけないでしょうか 7 2022/12/16 14:54
- 英語 できるだけ直訳で英語の翻訳をお願いします。(英語→日本語) 1 2022/10/15 20:59
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- Visual Basic(VBA) エクセル VBA 難しいです 1 2023/02/21 15:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PL/SQLカーソルの2重FORループ...
-
カーソル定義での条件分岐
-
自動連番でカラムを更新したい
-
カーソルループ内部でログを出力
-
Texの枠囲み調節
-
PL/SQLでのSQL文法
-
Accessのマクロでモジュールを...
-
Access VBAで行ラベルが定義さ...
-
ストアド実行時のエラー「参照...
-
SQLserver算術オーバーフロ...
-
エクセルVBAでUserFormを起動し...
-
今日の日付が入った行のデータ...
-
重複するIDのデータを1行にま...
-
sqlplusでヘッダーが付かない
-
PL/SQLでSPOOLさせたいのですが...
-
ODBCリンクの際にACCESSでは読...
-
パッケージ内のファンクション...
-
質問:DBMS_OUTPUTの使用方法
-
日付型カラムへのデータINSERT
-
Accessで、『"A"以外の場合"--"...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PL/SQLカーソルの2重FORループ...
-
PL/SQLでのSQL文法
-
Texの枠囲み調節
-
カーソル定義での条件分岐
-
カーソルで集合関数を使った場...
-
ORA-00904:無効な識別子の回避...
-
PL/SQLのOPEN cursor_name FOR...
-
PL/SQLにて、マスタから取得し...
-
[Oracle9i]PL/SQLでFETCHしても...
-
PL/SQLのカーソルについて
-
PL/SQL カーソルのFROM句にカー...
-
PL/SQLでFORの働き
-
カーソルループ内部でログを出力
-
自動連番でカラムを更新したい
-
カーソルフェッチにて、最終レ...
-
PL/SQLプログラムの書き方がわ...
-
処理の結果レコードがなかった...
-
T-SQLのカーソルで
-
【PL/SQL】CURSOR ・・・ IS SE...
-
文字列の置換
おすすめ情報