
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ランキング
-
ストアドプロシジャからストア...
-
PL/SQL exceptionを呼び出すには?
-
質問:DBMS_OUTPUTの使用方法
-
ストアド パッケージについて
-
OracleのTEXT_IOについて
-
パッケージ内のファンクション...
-
INSERT文の書式
-
ORACLEでの実装方法が知りたい...
-
ストアドプロシージャ結果のフ...
-
PL/SQLの例外
-
Accessのマクロでモジュールを...
-
Statement ignored というエラー
-
sqlplusのspoolで空白行出現
-
Excel VBAで「プログラム実行」...
-
【Excel VBA】 WorksheetやRa...
-
エクセルVBAでUserFormを起動し...
-
ODBCリンクの際にACCESSでは読...
-
キャッシュを使わずにSELECTを...
-
callで順に実行されるプロシー...
-
Access VBAで行ラベルが定義さ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ストアドプロシジャからストア...
-
ストアド実行時のエラー「参照...
-
PL/SQL exceptionを呼び出すには?
-
時間項目を60進数から10進数へ...
-
INSERT文の書式
-
PL/SQLで連結(||)と結合(=>)の違い
-
PL/SQL 実行中のSID
-
パッケージ内のファンクション...
-
質問:DBMS_OUTPUTの使用方法
-
PL/SQLについて
-
PL/SQLの例外
-
ストアドプロシージャからアナ...
-
ストアドプロシージャ結果のフ...
-
Function内に記述したdbms_outp...
-
ROW_NUMBER()を使用したデータ取得
-
OracleのTEXT_IOについて
-
ストアドプロシージャからスト...
-
PL/SQLに関して
-
PL/SQLのファンクションでのOUT...
-
プロシージャ 引数 指定
おすすめ情報