PL/SQLに関しての質問です。
1、プロシージャの内部にファンクションをネストするなどということはできるのでしょうか?
(内部ファンクションのような感じで)
2、プロシージャからファンクションを呼び出し、ファンクションの戻り値をレコード型変数にした場合、ファンクションでSELECTしたレコード件数が0件であった場合、例外ブロックのWHEN no_data・・・THEN で、RETURN NULLで戻すことはできるでしょうか?
(呼び出し側で、レコード型変数にNULLを代入できますか?)
3、ObjectBrowserからストアドプロシージャを実行するとき、引数ありのストアドプロシージャを実行する方法を教えてください。(または参考WEBサイトを教えてください。)
いずれも、試す環境が今ないため、ご回答のほどよろしくお願いします。
No.2ベストアンサー
- 回答日時:
1.できますよ。
通常の内部PROCのように宣言とコーディングすれば使用できます。2.ファンクション内でカーソルを使用してカーソルをOpenし、Fetchでデータ取得を実行したあとにカーソルをCloseする前に『IF Cursor名%NOTFOUND then』で対応もできますが、通常カーソルを使用してOpen・Fetchした場合、Notfoundの場合定数にはnullがセットされる(というか何も取得できないので初期処理でnullクリアしておけばnullのまま)のでnullがリターンされるはず。
レコード型で定義されている定数に対しnullを代入するとレコード全体の項目に対しnullがセットされます。
3.ObjectBrowserは実行時、引数を入力するための画面が表示されます。
参考URL:http://www.sint.co.jp/
1、ありがとうございます。出来るということですので、あとは調べてみます。
2、
>レコード型で定義されている定数に対しnullを代入すると
>レコード全体の項目に対しnullがセットされる
ということでしたので、RETURN BOOLEANで結果を戻して、OUTPUTのレコード型変数は引数にしました。
3、引数の入力箇所が出てきました。
ありがとうございました。
No.1
- 回答日時:
あまり自信がありませんが・・・。
1、について
可能です。
2、について
たぶんNULLに設定することは可能ですが、
NULLの判定ができない(フィールドに対してチェックする方法しかない)と思います。
いっそのこと、そのままNO_DATA_FOUNDをRAISEしてしまう
(もちろん呼び出し元のexceptionでCATCHしてあげる)
方法はどうでしょうか?
3、について
ObjectBrowserは昔使った記憶をたどると、実行したときに
引数に何を入れるかダイアログのような入力画面が出た
ような気がします。
1、ありがとうございます。出来ることが分かっただけでも助かりましたので、具体的な方法は調べてみます。
2、NO_DATA_FOUNDをRAISEして、呼び出し元のexceptionでCATCHしたりできるのですね。NO_DATA_FOUNDかその他のエラーなのか呼び出し元で知りたかったので役に立ちました。
3、引数の入力箇所が出てきました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP PHPSpreadsheetによる書き出し時のページネーション方法について 1 2023/03/20 10:35
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
- SQL Server これをSQL文で出来るでしょうか? 1 2023/03/26 02:16
このQ&Aを見た人はこんなQ&Aも見ています
-
餃子を食べるとき、何をつけますか?
みんな大好き餃子。 ふと素朴な疑問ですが、餃子には何をつけて食べますか? 王道は醤油とお酢でしょうか。
-
これ何て呼びますか
あなたのお住いの地域で、これ、何て呼びますか?
-
遅刻の「言い訳」選手権
よく遅刻してしまうんです…… 「電車が遅延してしまい遅れました」 「歯医者さんが長引いて、、、」 「病院が混んでいて」 などなどみなさんがこれまで使ってきた遅刻の言い訳がたくさんあるのではないでしょうか?
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
カーソル0件の時にエラーを発生させる
Oracle
-
ストアドプロシージャ_カーソルのヒット件数
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ストアドプロシジャからストア...
-
PL/SQLで連結(||)と結合(=>)の違い
-
ストアド実行時のエラー「参照...
-
質問:DBMS_OUTPUTの使用方法
-
時間項目を60進数から10進数へ...
-
ストアドプロシージャからスト...
-
PL/SQL exceptionを呼び出すには?
-
PL/SQLについて
-
Accessのマクロでモジュールを...
-
Access VBAで行ラベルが定義さ...
-
ODBCリンクの際にACCESSでは読...
-
callで順に実行されるプロシー...
-
Statement ignored というエラー
-
VBA プロシージャの名前の取得
-
SQLで部分的にGROUP BYしたいとき
-
エクセルVBAでUserFormを起動し...
-
sqlplusでヘッダーが付かない
-
WHERE句の実行順序
-
SQL*Plusの終了はquit?exit?
-
likeとsubstrの使いわけについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ストアドプロシジャからストア...
-
時間項目を60進数から10進数へ...
-
PL/SQL exceptionを呼び出すには?
-
ストアド実行時のエラー「参照...
-
PL/SQLで連結(||)と結合(=>)の違い
-
ROW_NUMBER()を使用したデータ取得
-
パッケージ内のファンクション...
-
PL/SQL 実行中のSID
-
質問:DBMS_OUTPUTの使用方法
-
ストアドプロシージャからアナ...
-
PL/SQLに関して
-
PL/SQLのファンクションでのOUT...
-
INSERT文の書式
-
プロシージャ 引数 指定
-
ストアドプロシージャからスト...
-
毎日決まった時間にSQLを実...
-
ストアドプロシージャ結果のフ...
-
Oracle: PACKAGE BODY の分割
-
Function内に記述したdbms_outp...
-
PL/SQLの例外
おすすめ情報