ESQL プロシージャー

プロシージャーは、戻り値のないサブルーチンです。これは呼び出し元から入力パラメーターを受け取り、出力パラメーターを戻します。

プロシージャーは関数に非常に似ています。両者の主な違いは、プロシージャーは戻り値がなく、関数には戻り値があることです。したがって、プロシージャーは式の一部を形成することはできず、CALL ステートメントを使用して起動されます。一般的にプロシージャーには出力パラメーターがあります。

ESQL にプロシージャーをインプリメントするか (内部プロシージャー)、データベース・ストアード・プロシージャーとしてインプリメントできます (外部プロシージャー)。ESQL プロシージャーは、単一の ESQL ステートメントである必要があります。ただし、そのステートメントは BEGIN END などの複合ステートメントであることも可能です。プロシージャーは、EVAL ステートメントまたは EVAL 関数で定義することはできません。

プロシージャーを定義するときは、名前を指定してください。名前には、大/小文字の区別がありません (つまり、大/小文字の任意の組み合わせで名前を使用しても、宣言と一致します)。これは、スキーマ、定数、変数、およびラベルに対して宣言する名前とは対照的です。それらの場合には、大/小文字の区別を付けて扱われ、宣言したのと同じに正確に指定する必要があります。

ESQL 式には他の (同じまたは異なる従属プロジェクト内の ESQL ファイルで定義された) ブローカー・スキーマ内のプロシージャーに対する参照が含まれることもあります。この手法を使用したい場合、プロシージャーを完全修飾するか、または修飾子を設定する PATH ステートメントを組み込んでください。PATH ステートメントは同じ ESQL ファイル内でコーディングする必要がありますが、MODULE 内でコーディングすることはできません。

外部データベース・プロシージャーは、キーワード EXTERNAL および外部プロシージャー名によって示されます。このプロシージャーは、データベース内とブローカー内とで定義する必要があり、それぞれのパラメーター名は同じである必要はありませんが、EXTERNAL キーワードを使用して指定した名前とデータベース・ストアード・プロシージャーの名前は同じでなければなりません。ESQL プロシージャー名は、そのプロシージャーの中で定義する外部名とは別の名前でもかまいません。

多重定義プロシージャーは、どのデータベースでもサポートされていません。(多重定義プロシージャーとは、同じデータベース・スキーマ内の別のプロシージャーと同じ名前を持つプロシージャーで、パラメーターの数またはパラメーターのタイプが異なるものです。)プロシージャーが多重定義であることをブローカーが検出すると、例外が生じます。

ストアード・プロシージャーのスキーマ名の動的解決機能がサポートされています。プロシージャーを定義する場合には、ESQL がプロシージャーを呼び出す前に解決するスキーマのワイルドカードを指定する必要があります。これについては、ストアード・プロシージャーの呼び出しで詳しく説明されています。

関連概念
メッセージ・フローの概要
メッセージ・マッピングの概要
関連タスク
メッセージ・フローの作成
ESQL の開発
ストアード・プロシージャーの呼び出し
関連資料
組み込みノード
ESQL 参照
CREATE FUNCTION ステートメント
CREATE MODULE ステートメント
CREATE PROCEDURE ステートメント
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
ak01090_