Procedure Dialog

目次

Procedure Dialog#

Procedure ダイアログを使用して、プロシージャを作成します。プロシージャは、 PostgreSQL v11+およびEDB Postgres Advanced Serverでサポートされています。 Procedure ダイアログを使用すると、 CREATE PROCEDUREコマンドのオプションを実装できます。

Procedure ダイアログは、次のダイアログタブを介してプロシージャーの開発を編成します。 General 、 Definition 、 Code 、 Options 、 Arguments 、 Parameters 、および Security 。 [ * SQL* ]タブには、ダイアログ選択によって生成されたSQLコードが表示されます。

プロシージャーダイアログの一般タブ

[ General ]タブのフィールドを使用して、プロシージャを特定します。

  • Name フィールドを使用して、プロシージャーの説明的な名前を追加します。名前は pgAdmin ツリーコントロールに表示されます。

  • 所有者 の横にあるドロップダウンリストボックスを使用して、ロールを選択します。

  • Schema フィールドのドロップダウンリストボックスからプロシージャが存在するスキーマの名前を選択します。

  • プロシージャーに関するメモを コメント フィールドに保存します。

[ 定義 ]タブをクリックして続行します。

プロシージャダイアログ定義タブ

Definition タブのフィールドを使用して、プロシージャを定義します。

  • 言語 の横にあるドロップダウンリストボックスを使用して、言語を選択します。デフォルトは edbspl です。

  • Arguments セクションのフィールドを使用して、引数を定義します。 Add をクリックして、引数のパラメーターと値を設定します。

  • Data type の横にあるドロップダウンリストボックスを使用して、データタイプを選択します。

  • モード の横にあるドロップダウンリストボックスを使用して、モードを選択します。入力パラメーターとして IN を選択します。出力パラメーターに OUT を選択します。入力パラメーターと出力パラメーターの両方に INOUT を選択します。または、 VARIADIC を選択してVARIADICパラメーターを指定します。

  • 引数の名前を 引数名 フィールドに書き込みます。

  • [ デフォルト値 ]フィールドで引数のデフォルト値を指定します。

Add をクリックして別の引数を定義します。引数を破棄するには、行の左側にあるゴミ箱アイコンをクリックし、 Delete Row ポップアップで削除を確認します。

[ * Code * ]タブをクリックして続行します。

プロシージャーダイアログのコードタブ
  • Code フィールドを使用して、プロシージャーが呼び出されたときに実行するコードを指定します。

[ オプション ]タブをクリックして続行します。

プロシージャーダイアログオプションタブ

Options タブのフィールドを使用して、プロシージャの動作を説明または変更します。

  • ボラティリティ の下のドロップダウンリストボックスを使用して、次のいずれかを選択します。 VOLATILE はデフォルト値です。

    • VOLATILE は、単一のテーブルスキャン内でも値が変更される可能性があることを示し、最適化はできません。

    • STABLE は、プロシージャーがデータベースを変更できず、単一のテーブルスキャン内で一貫して同じ引数値に対して同じ結果を結果ますが、 SQLステートメント間で結果が変わる可能性があることを示します。

    • IMMUTABLE は、プロシージャーがデータベースを変更できず、同じ引数値が指定された場合に常に同じ結果を返すことを示します。

  • Strict? スイッチを移動して、引数のいずれかがNULLの場合、プロシージャーが常にNULLを返すかどうかを示します。 Yes の場合、NULL引数がある場合、プロシージャは実行されません。代わりに、NULL結果が自動的に想定されます。デフォルトは いいえ です。

  • Security of promoter? スイッチを移動して、プロシージャーを作成したユーザーの特権で実行することを指定します。デフォルトは いいえ です。

  • 推定コスト フィールドを使用して、プロシージャーの推定実行コストを表す正の数をcpu_operator_costの単位で指定します。プロシージャがセットを返す場合、これは返された行ごとのコストです。

  • Leak promote? スイッチを移動して、プロシージャーに副作用があるかどうかを示します。戻り値以外に引数に関する情報を明らかにしません。デフォルトは いいえ です。

Parameters タブをクリックして続行します。

プロシージャーダイアログのパラメータータブ

Parameters タブのフィールドを使用して、プロシージャーが呼び出されたときに適用される設定を指定します。

  • [ パラメーター ]パネルの[ パラメーター名 ]の横にあるドロップダウンリストボックスを使用して、パラメーターを選択します。

  • Add ボタンをクリックして、変数をテーブルの Name フィールドに追加します。

  • Value フィールドを使用して、選択した変数に関連付けられる値を指定します。このフィールドは状況依存です。

[ セキュリティ ]タブをクリックして続行します。

プロシージャーダイアログのセキュリティタブ

[ セキュリティ ]タブを使用して、特権を割り当て、セキュリティラベルを定義します。

Privileges パネルを使用して、プロシージャーの実行特権をロールに割り当てます。

  • Grantee フィールドのドロップダウンリストボックスからロールの名前を選択します。

  • Privileges フィールド内をクリックします。 1つ以上の特権の左側のチェックボックスをオンにして、選択した特権を指定したユーザーに付与します。

  • 特権を付与するデフォルトの付与者である現在のユーザーが Grantor フィールドに表示されます。

Add をクリックして、追加の特権を割り当てます。特権を破棄するには、行の左側にあるゴミ箱アイコンをクリックし、 Delete Row ポップアップで削除を確認します。

Use the Security Labels panel to define security labels applied to the procedure. Click Add to add each security label selection:

  • Provider フィールドにセキュリティラベルプロバイダーを指定します。名前付けプロバイダーをロードし、提案されたラベル付け操作に同意する必要があります。

  • Security Label フィールドにセキュリティラベルを指定します。特定のラベルの意味は、ラベルプロバイダーの裁量にあります。 PostgreSQLは、ラベルプロバイダーがセキュリティラベルを解釈する必要があるかどうか、またはその方法に制限を設けません。それらを保存するためのメカニズムを提供するだけです。

Add をクリックして、追加のセキュリティラベルを割り当てます。セキュリティラベルを破棄するには、行の左側にあるゴミ箱アイコンをクリックし、 Delete Row ポップアップで削除を確認します。

[ * SQL* ]タブをクリックして続行します。

プロシージャー ダイアログの入力は、 SQLコマンドを生成します。以下の例を参照してください。確認には * SQL* タブを使用します。再度アクセスするか、タブを切り替えて、 SQLコマンドを変更します。

例#

以下は、 プロシージャ ダイアログでの選択によって生成されたsqlコマンドの例です。

プロシージャーダイアログのSQLタブ

この例では、 emp という名前のテーブルから従業員のリストを返すプロシージャを作成する方法を示しています。 プロシージャーはSECURITY DEFINERであり、プロシージャーを定義したロールの特権で実行されます。

  • 情報 ボタンiをクリックして、オンラインヘルプにアクセスします。

  • Save ボタンをクリックして、作業を保存します。

  • Click the Close button to exit without saving work.

  • Reset ボタンをクリックして、構成パラメーターを復元します。