<nom_budget>!ADD_RESOURCE

Ajouter un objet à un budget personnalisé. L’objet doit être ajouté par référence.

Voir aussi :

<nom_budget>!REMOVE_RESOURCE, <nom_budget>!GET_LINKED_RESOURCES

Syntaxe

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

Arguments

'object_reference'

La représentation sérialisée de la chaîne qui se résout en un objet. Cette chaîne est la sortie de la fonction SYSTEM$REFERENCE.

reference_statement

Une instruction SYSTEM$REFERENCE qui crée une référence pour l’objet à ajouter au budget.

Renvoie

Successfully added resource to resource group

Exigences en matière de contrôle d’accès

Les privilèges et rôles suivants sont nécessaires pour appeler cette méthode pour un budget personnalisé :

  • Un rôle avec le rôle ADMIN instance pour l’instance budgétaire.

  • Un rôle bénéficiant du privilège USAGE sur la base de données et le schéma qui contient l’instance de budget.

  • Un rôle avec le privilège APPLYBUDGET sur l’objet en cours d’ajout.

Notes sur l’utilisation

  • Vous ne pouvez ajouter des objets qu’aux budgets personnalisés.

  • Vous ne pouvez pas créer de référence pour la base de données SNOWFLAKE, ni l’ajouter à un budget.

Exemples

  1. Créer une référence pour un objet et ajouter l’objet à un budget.

    Créer une référence pour la table t1 :

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

    Renvoie :

    ENT_REF_TABLE_5862683050074_5AEB8D58FB3ACF249F2E35F365A9357C46BB00D7
    

    Ajouter la table t1 au budget my_budget dans le schéma budget_db.budget_schema :

    CALL budget_db.budget_schema.my_budget!ADD_RESOURCE(
      'ENT_REF_TABLE_5862683050074_5AEB8D58FB3ACF249F2E35F365A9357C46BB00D7');
    
    Copy
  2. Ajouter un objet à un budget en utilisant une instruction SYSTEM$REFERENCE.

    Ajouter la table t1 au budget my_budget dans le schéma budget_db.budget_schema :

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

Messages d’erreur

Les scénarios suivants peuvent vous aider à résoudre les problèmes pouvant survenir lors de l’ajout de ressources à un budget personnalisé.

Erreur

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

Cause

Le rôle que vous avez utilisé pour appeler cette méthode n’a pas le rôle d’instance ADMIN.

Solution

Utilisez un rôle qui possède les rôles et privilèges requis pour ajouter des objets au budget. Voir Exigences en matière de contrôle d’accès.

Erreur

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

Cause

Le rôle que vous avez utilisé pour appeler cette méthode ne dispose pas du privilège APPLYBUDGET sur l’objet que vous essayez d’ajouter au budget.

Solution

Utilisez un rôle qui possède les rôles et privilèges requis pour ajouter des objets au budget. Voir Exigences en matière de contrôle d’accès.

Erreur

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

Cause

Si vous créez une référence pour un objet sans spécifier le paramètre PRIVILEGE dans l’instruction SYSTEM$REFERENCE.

Solution

Créez la référence avec le privilège APPLYBUDGET sur l’objet.

Erreur

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.

Cause

Si vous essayez d’ajouter la base de données SNOWFLAKE à un budget personnalisé avec une instruction en ligne SYSTEM$REFERENCE.

Solution

La base de données SNOWFLAKE ne peut pas être ajoutée à un budget. Voir Notes sur l’utilisation ci-dessus.