Denodo のストアドプロシージャの呼び出し¶
Denodo ストアドプロシージャはいくつかの方法で呼び出すことができます。
SELECT ステートメントの FROM 句でプロシージャを呼び出し、WHERE 句で入力パラメータを指定します。以下に例を示します。
SELECT database_name, name, type, description, view_type, swap_active, folder FROM GET_VIEWS() WHERE input_database_name = 'customer360' AND (input_init_create_date = ADDDAY(CURRENT_DATE, -1));
この方法でストアドプロシージャを呼び出すと、結果のスキーマにはストアドプロシージャの出力パラメータ と入力パラメータ が含まれます。そのため、ビューと同じ方法でストアドプロシージャを呼び出して、2 つのストアドプロシージャの結果を結合することができます。
CALL
ステートメントを使用します。CALL ステートメントの構文¶CALL <procedureName:identifier> ( [ <paramValue:literal> [ ,<paramValue:literal> ]* ] ) [ CONTEXT ( 'i18n' = <literal> ) ] [ TRACE ]
以下のステートメントは、
input_database_name
パラメータに「customer360」を指定してGET_VIEWS
ストアドプロシージャを呼び出します。CALL GET_VIEWS( 'customer360', null, null, null, null, null, null, null, null, null, null, null);
ストアドプロシージャの入力パラメータがオプションの場合、
NULL
を渡します。SELECT ステートメントの FROM 句からプロシージャを呼び出します。以下に例を示します。
SELECT avgrevenue FROM CalculateAvgRevenue( {ROW('B78596011'), ROW('B78596012')} )
この例では、
CalculateAvgRevenue
プロシージャの入力パラメータはレジスターの配列です。各レジスターには単一のフィールド (顧客の納税者 ID) が含まれています。
以下の理由により、ストアドプロシージャは最初の方法で呼び出すことをお勧めします。
クエリには入力パラメータの名前が含まれているため、クエリでどのような操作が実行されるかがすぐにわかります。
CALL
を使用する場合、各パラメータの意味を知る必要があります。すべてのパラメータの値を指定する必要はありません。
CALL を使用する場合とは異なり、SELECT ステートメントからプロシージャを呼び出すと、プロシージャの結果を他のビューと結合できます。