プロシージャーは、戻り値のないサブルーチンです。 これは呼び出し元から入力パラメーターを受け取り、出力パラメーターを戻します。
ESQL にプロシージャーをインプリメントするか (内部プロシージャー)、 データベース・ストアード・プロシージャーとしてインプリメントできます (外部プロシージャー)。 ESQL プロシージャーは、単一の ESQL ステートメントである必要があります。 ただし、そのステートメントは BEGIN END などの複合ステートメントであることも可能です。 (関数は値を戻すことができますが) プロシージャーは値を戻すことができません。 プロシージャーは、EVAL ステートメントまたは EVAL 関数で定義することはできません。
プロシージャーを定義するときは、名前を指定してください。 名前には、大文字小文字の区別がありません (つまり、 大文字小文字の任意の組み合わせで名前を使用しても、宣言と一致します)。 これは、スキーマ、定数、変数、およびラベルに対して宣言する名前とは対照的です。 それらの場合には、大文字小文字の区別を付けて扱われ、 宣言したのと同じに正確に指定する必要があります。
ESQL 式には他の (同じまたは異なる従属プロジェクト内の ESQL ファイルで 定義された) ブローカー・スキーマ内のプロシージャーに対する参照が含まれることもあります。 この手法を使用したい場合、プロシージャーを完全修飾するか、または修飾子を設定する PATH ステートメントを組み込んでください。 PATH ステートメントは同じ ESQL ファイル内でコーディングする必要がありますが、 MODULE 内でコーディングすることはできません。
多重定義の内部プロシージャーはサポートされません。 (多重定義プロシージャーは、同一のブローカー・スキーマではあるものの、 パラメーターの数が異なる、またはタイプの異なるパラメーターを有する別のプロシージャーと同一名を持つプロシージャーです。)プロシージャーが多重定義であることをブローカーが検出すると、例外が生じます。
外部データベース・プロシージャーは、キーワード EXTERNAL および外部プロシージャー名によって示されます。 このプロシージャーは、データベース内とブローカー内とで定義する必要があり、 それぞれのパラメーター名は同じである必要はありませんが、 EXTERNAL キーワードを使用して指定した名前とデータベース・ストアード・プロシージャーの名前は同じでなければなりません。 ESQL プロシージャー名は、そのプロシージャーの中で定義する外部名とは別の名前でもかまいません。
SQLServer のストアード・プロシージャーはサポートされていません。 多重定義プロシージャーは、データベースでもサポートされません。 (多重定義プロシージャーとは、同じデータベース・スキーマ内の別のプロシージャーと同じ名前を持つプロシージャーで、パラメーターの数またはパラメーターのタイプが異なるものです。) プロシージャーが多重定義であることをブローカーが検出すると、例外が生じます。
ストアード・プロシージャーのスキーマ名の動的解決機能がサポートされています。 プロシージャーを定義する場合には、 ESQL がプロシージャーを呼び出す前に解決するスキーマのワイルドカードを指定する必要があります。 これについては、ストアード・プロシージャーの呼び出しで詳しく説明されています。
関連タスク
メッセージ・フロー・アプリケーションの開発
ESQL の開発
ストアード・プロシージャーの呼び出し
関連資料
組み込みノード
ESQL
CREATE FUNCTION ステートメント
CREATE MODULE ステートメント
CREATE PROCEDURE ステートメント
注意 |
商標 |
ダウンロード |
ライブラリー |
技術サポート |
フィードバック
![]() ![]() |
ak01090_ |