Résolution des problèmes liés aux budgets

Dans ce chapitre :

Les scénarios suivants peuvent vous aider à résoudre les problèmes qui peuvent survenir lors de la création ou de la modification de budgets :

Vous ne pouvez pas activer le budget du compte

Il existe plusieurs raisons pour lesquelles il se peut que vous ne puissiez pas activer le budget de votre compte :

Erreur

Unknown user-defined function SNOWFLAKE.LOCAL.ACTIVATE

Cause

Si votre compte Snowflake est nouveau, le budget du compte n’est pas encore disponible dans votre compte.

Solution

Attendez que le budget du compte soit disponible dans votre compte venant d’être créé. Vous pourrez l’activer une fois qu’il sera disponible.

Erreur

FAILURE: Uncaught exception of type 'BUDGET_ALREADY_ACTIVATED' on line X at position X

Cause

Le budget du compte a déjà été activé.

Solution

Vous pouvez appeler la méthode <nom_budget>!GET_CONFIG pour afficher l’horodatage de l’activation :

CALL SNOWFLAKE.LOCAL.ACCOUNT_ROOT_BUDGET!GET_CONFIG();
Copy

Erreur

-20000 (P0001): Uncaught exception of type 'NO_PERMISSION_TO_ACTIVATE_BUDGET' on line X at position X

Cause

Votre compte ne prend pas encore en charge la fonction Budgets.

Solution

La fonction Budgets n’est pas disponible pour les comptes dans les régions Gov. La prise en charge des régions Gov sera disponible dans une prochaine version.

Vous ne pouvez pas créer de budget personnalisé

Il existe de nombreuses raisons pour lesquelles vous ne pouvez pas créer un budget personnalisé.

Erreur

FAILURE: SQL access control error: Insufficient privileges to operate on class 'BUDGET'

Cause

Le rôle que vous utilisez n’a pas les privilèges requis pour créer des budgets personnalisés.

Solution

Utilisez un rôle avec les privilèges requis. Voir Créer un rôle personnalisé pour créer des budgets.

Erreur

FAILURE: Uncaught exception of type 'STATEMENT_ERROR' on line 0 at position -1 :
Uncaught exception of type 'UNSUPPORTED_BUDGET_TYPE' on line X at position X

Cause

Vous passez des arguments à la méthode du constructeur pour créer un budget.

Solution

Consultez CREATE BUDGET et modifiez votre instruction de création.

Vous ne pouvez pas activer de budget personnalisé

Erreur

FAILURE: Uncaught exception of type 'STATEMENT_ERROR' on line 0 at position -1 :
Uncaught exception of type 'UNSUPPORTED_BUDGET_TYPE' on line X at position X

Cause

Vous avez essayé d’appeler la méthode ACTIVATE sur un budget personnalisé.

Solution

La méthode ACTIVATE n’est disponible que sur le budget du compte. Une fois que vous avez créé un budget personnalisé, utilisez les méthodes <nom_budget>!SET_SPENDING_LIMIT et <nom_budget>!SET_EMAIL_NOTIFICATIONS pour configurer le budget et commencer à recevoir des e-mails de notification.

Vous ne pouvez pas appeler de méthodes sur le budget du compte

Il y a plusieurs raisons pour lesquelles l’appel d’une méthode sur le budget du compte peut échouer.

Erreur

-20000 (P0001): Uncaught exception of type 'FUNCTION_NOT_SUPPORTED_FOR_ACCOUNT_ROOT_BUDGET' on line 11 at position 18

Cause

Vous avez essayé d’appeler l’une des méthodes suivantes sur le budget du compte :

Solution

Ces méthodes ne sont pas disponibles sur le budget du compte. Le budget du compte contrôle tous les objets pris en charge dans le compte et les objets ne peuvent pas être ajoutés ou supprimés. Pour plus d’informations, consultez Budget du compte et budgets personnalisés.

Erreur

-20000 (P0001): Uncaught exception of type 'ACCOUNT_ROOT_BUDGET_NOT_ACTIVATED' on line X at position X

Cause

Vous avez essayé d’appeler une méthode sur le budget du compte avant que le budget du compte ne soit activé.

Solution

Activez le budget du compte.

Vous ne pouvez pas ajouter ou supprimer des objets d’un budget personnalisé

Pour réussir à ajouter ou à supprimer un objet d’un budget personnalisé, le rôle utilisé pour appeler la méthode doit avoir les privilèges requis et le rôle.

Erreur

002141 (42601): SQL compilation error:
Unknown user-defined function <budget_db>.<budget_schema>.<budget_name>!ADD_RESOURCE

Cause

Le rôle que vous avez utilisé pour appeler la méthode d’instance ne dispose pas des privilèges requis pour ajouter (ou supprimer) des objets au budget.

Solution

Accordez le rôle d’instance et les privilèges requis au rôle utilisé pour appeler la méthode. Pour plus d’informations, voir Créer un rôle personnalisé pour surveiller un budget personnalisé.

Erreur

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

Cause

Vous avez essayé d’ajouter un objet à un budget personnalisé, mais le rôle que vous avez utilisé pour appeler la méthode ne dispose pas des privilèges requis.

Solution

Pour ajouter (ou supprimer) un objet d’un budget, le rôle utilisé pour appeler la méthode doit avoir le privilège APPLYBUDGET sur l’objet. Si l’objet parent est une base de données ou un schéma, vous devez également disposer du privilège USAGE sur la base de données et le schéma qui contiennent l’objet.

Pour plus d’informations, consultez la liste des privilèges requis pour les objets.

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

Les causes de ce message d’erreur sont multiples :

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

  • Vous ne disposez pas des privilèges requis sur l’objet pour en créer une référence. La référence valide est nécessaire pour ajouter l’objet à un budget.

Solution

Vous ne pouvez pas définir de notifications par e-mail pour un budget

Les scénarios suivants peuvent vous aider à résoudre des problèmes courants lorsque vous appelez la méthode <nom_budget>!SET_EMAIL_NOTIFICATIONS.

Erreur

Unknown user-defined function <database_name>.<schema_name>.<budget_name>.SET_EMAIL_NOTIFICATIONS

Cause

Le rôle que vous avez utilisé pour définir les notifications par e-mail pour un budget personnalisé n’a pas le rôle d’instance ADMIN.

Solution

Utilisez un rôle doté des privilèges et des rôles requis. Voir Exigences en matière de contrôle d’accès pour SET_EMAIL_NOTIFICATIONS.

Erreur

Integration '<INTEG_NAME>' does not exist or not authorized.

Cause

L’intégration des notifications n’existe pas.

Solution

Utilisez une intégration de notification valide. Pour plus d’informations, voir Créer une intégration des notifications par e-mail. Incluez les adresses e-mail pour les annonces de budgets dans la liste ALLOWED_RECIPIENTS.

Erreur

FAILURE: Uncaught exception of type 'EXPRESSION_ERROR' on line 16 at position 34 : Following email address(es) are not
allowed by the email integration <INTEGRATION_NAME>: [<email>]

Cause

Les adresses e-mail ne sont pas incluses dans l’intégration de la notification.

Solution

Ajoutez les adresses e-mail à l’intégration de notification ou utilisez une intégration de notification qui inclut toutes les adresses e-mail de la liste ALLOWED_RECIPIENTS.

Erreur

Email recipients in the given list at indexes [<index_list>] are not allowed. Either these email addresses are not yet validated
or do not belong to any user in the current account.

Cause

Certaines ou toutes les adresses e-mail que vous avez tenté d’ajouter ne sont pas validées.

Solution

Voir Vérifier les adresses e-mail des destinataires de la notification par e-mail.

Vous ne pouvez pas appeler avec succès la méthode GET_SERVICE_TYPE_USAGE

Les scénarios suivants peuvent vous aider à résoudre des problèmes courants lorsque vous appelez la méthode <nom_budget>!GET_SERVICE_TYPE_USAGE.

Erreur

001044 (42P13): SQL compilation error: error line 0 at position -1 Invalid argument types for function 'GET_SERVICE_TYPE_USAGE':
(VARCHAR(X), VARCHAR(X), VARCHAR(X), VARCHAR(X))

Cause

Vous avez appelé la méthode avec des arguments non valides ou un nombre d’arguments incorrect.

Solution

Vérifiez que les arguments que vous utilisez pour appeler la méthode sont valides et que vous avez inclus tous les arguments requis.

Erreur

002151 (22023): Uncaught exception of type 'STATEMENT_ERROR' on line 16 at position 23 : SQL compilation error:
[:TIME_DEPART] is not a valid date/time component for function DATE_TRUNC.

Cause

L’argument TIME_DEPART est une chaîne non valide.

Solution

Utilisez l’une des valeurs valides énumérées pour l’argument TIME_DEPART dans la rubrique de référence.

Erreur

100094 (22000): Uncaught exception of type 'STATEMENT_ERROR' on line 16 at position 23 : Unknown timezone: '<invalid_timezone>'

Cause

L’argument USER_TIMEZONE est une chaîne non valide.

Solution

Utilisez une chaîne de fuseau horaire valide. Pour plus d’informations, voir les notes sur l’utilisation de GET_SERVICE_TYPE_USAGE.

La fonction Budgets n’est pas disponible pour votre compte

Erreurs

FAILURE: SQL compilation error: Class 'SNOWFLAKE.CORE.BUDGET' does not exist or not authorized.
000002 (0A000): Uncaught exception of type 'STATEMENT_ERROR' on line 0 at position -1 : Unsupported feature 'TOK_RESOURCE_GROUP'.

Cause

Votre compte ne prend pas encore en charge la fonction Budgets.

Solution

La fonction Budgets n’est pas disponible pour les comptes dans les régions Gov. La prise en charge des régions Gov sera disponible dans une prochaine version.