<budget_name>!ADD_RESOURCE

カスタム予算 にオブジェクトを追加します。オブジェクトは 参照 によって追加される必要があります。

こちらもご参照ください。

<budget_name>!REMOVE_RESOURCE<budget_name>!GET_LINKED_RESOURCES

構文

<budget_name>!ADD_RESOURCE( { '<object_reference>' | <reference_statement> } )
Copy

引数

'object_reference'

オブジェクトが解決先のシリアライズされた文字列表現。この文字列は SYSTEM$REFERENCE 関数の出力です。

reference_statement

予算に追加するオブジェクトの参照を作成する SYSTEM$REFERENCE ステートメント。

戻り値

Successfully added resource to resource group

アクセス制御の要件

カスタム予算でこのメソッドを呼び出すには、以下の権限とロールが必要です。

  • 予算インスタンスの ADMIN インスタンスロール を持つロール。

  • 予算インスタンスを含むデータベースとスキーマ上で USAGE 権限を付与されたロール。

  • 追加されるオブジェクト上で APPLYBUDGET 権限を持つロール。

使用上の注意

  • カスタム予算 にはオブジェクトしか追加できません。

  • SNOWFLAKE データベースの参照は作成できず、予算に追加することもできません。

  1. オブジェクトの参照を作成し、そのオブジェクトを予算に追加します。

    テーブル t1 の参照を作成します。

    SELECT SYSTEM$REFERENCE('TABLE', 't1', 'SESSION', 'APPLYBUDGET');
    
    Copy

    戻り値:

    ENT_REF_TABLE_5862683050074_5AEB8D58FB3ACF249F2E35F365A9357C46BB00D7
    

    スキーマ budget_db.budget_schema の予算 my_budget にテーブル t1 を追加します。

    CALL budget_db.budget_schema.my_budget!ADD_RESOURCE(
      'ENT_REF_TABLE_5862683050074_5AEB8D58FB3ACF249F2E35F365A9357C46BB00D7');
    
    Copy
  2. SYSTEM $ REFERENCE ステートメントを使用して、オブジェクトを予算に追加します。

    スキーマ budget_db.budget_schema の予算 my_budget にテーブル t1 を追加します。

    CALL budget_db.budget_schema.my_budget!ADD_RESOURCE(
      SELECT SYSTEM$REFERENCE('TABLE', 't2', 'SESSION', 'APPLYBUDGET'));
    
    Copy

エラーメッセージ

以下のシナリオは、カスタム予算にリソースを追加する際に発生する可能性のある問題のトラブルシューティングに役立ちます。

エラー

Unknown user-defined function <budget_db>.<budget_schema>.ADD_RESOURCE

原因

このメソッドの呼び出しに使用したロールに ADMIN インスタンスロールがありません。

解決策

このエラーを解決するには、オブジェクトを予算に追加するために必要なロールと権限を持つロールを使用します。 アクセス制御の要件 をご参照ください。

エラー

002003 (02000): SQL compilation error:
<object_type> '<object_name>' does not exist or not authorized.

原因

このメソッドを呼び出すために使用したロールに、予算に追加しようとしているオブジェクトに対する APPLYBUDGET 権限がありません。

解決策

このエラーを解決するには、オブジェクトを予算に追加するために必要なロールと権限を持つロールを使用します。 アクセス制御の要件 をご参照ください。

エラー

Uncaught exception of type 'EXPRESSION_ERROR' on line 10 at position 21 :
Privilege 'APPLYBUDGET' is not authorized on the reference object.

原因

SYSTEM $ REFERENCE ステートメントで PRIVILEGE パラメーターを指定せずにオブジェクトの参照を作成しようとしました。

解決策

オブジェクトの APPLYBUDGET 権限で参照を作成します。

エラー

505001 (55000): Uncaught exception of type 'EXPRESSION_ERROR' on line 10
at position 21 : Specified object does not exist or not authorized for
the reference.

原因

インライン SYSTEM $ REFERENCE ステートメントを使用して SNOWFLAKE データベースをカスタム予算に追加しようとしました。

解決策

SNOWFLAKE データベースは予算に追加できません。上記の 使用上の注意 をご参照ください。