<budget_name>!SET_CYCLE_START_ACTION¶
ストアドプロシージャを予算に関連付け、予算サイクルの再開時にプロシージャが呼び出されるようにします。プロシージャは、:doc:`参照</sql-reference/references>`を使用して関連付ける必要があります。
詳細については、 予算のサイクル開始アクション をご参照ください。
構文¶
<budget_name>!SET_CYCLE_START_ACTION (
{ '<stored_procedure_reference>' | <reference_statement> },
{ <array_of_arguments> | <array_construct_statement> } )
引数¶
'stored_procedure_reference'プロシージャに解決されるシリアル化された文字列表現。この文字列は SYSTEM$REFERENCE 関数の出力です。
reference_statement予算にプロシージャを関連付ける際に、参照を作成するための:doc:`/sql-reference/functions/system_reference`文。
array_of_argumentsストアドプロシージャに渡す引数の配列。
array_construct_statement0個、1個、または複数の入力値から構成された配列を返す:doc:`ARRAY_CONSTRUCT</sql-reference/functions/array_construct>`文。
戻り値¶
プロシージャが予算に正常に関連付けられたかどうかを示すVARCHAR値を返します。
プロシージャが予算に関連付けられなかった場合、メソッドはエラーメッセージを返します。
アクセス制御の要件¶
予算に対してこのメソッドを呼び出すには、以下の権限およびロールが必要です。
予算インスタンスの ADMIN インスタンスロール。
予算インスタンスを含んでいるデータベースとスキーマに対する USAGE 権限。
ストアドプロシージャを格納しているデータベースおよびスキーマに対するUSAGE権限。
ストアドプロシージャに対するUSAGE権限。
詳細については、 Budgetのロールと権限 をご参照ください。
使用上の注意¶
このメソッドを呼び出しても、オブジェクトは返されません。このため、メソッドの連結を使って、このメソッドの戻り値で別のメソッドを呼び出すことはできません。換わりに、各メソッドを別々の SQL ステートメントで呼び出します。
例¶
:code:`reset_resources`ストアドプロシージャを:code:`budget_db.sch1.my_budget`予算に関連付け、予算サイクルの再開時にプロシージャが呼び出されるようにします。
CALL budget_db.sch1.my_budget!SET_CYCLE_START_ACTION(
SYSTEM$REFERENCE('PROCEDURE', 'code_db.sch1.reset_resources(STRING, STRING)'),
ARRAY_CONSTRUCT('admin@example.com', 'Budget cycle restarted'));
:code:`enable_access`ストアドプロシージャを:code:`budget_db.sch1.my_budget`予算に関連付け、予算サイクルの再開時にプロシージャが呼び出されるようにします。
CALL budget_db.sch1.my_budget!SET_CYCLE_START_ACTION(
SYSTEM$REFERENCE('PROCEDURE', 'code_db.sch1.enable_access(STRING)'),
ARRAY_CONSTRUCT('Re-enable resources for new budget cycle'));