<budget_name> !ADD_CUSTOM_ACTION

Associe une procédure stockée à un budget de sorte que la procédure soit appelée lorsque les dépenses prévues ou réelles atteignent un seuil spécifié. La procédure doit être associée par référence.

Pour plus d’informations, voir Actions personnalisées pour les budgets.

Syntaxe

<budget_name>!ADD_CUSTOM_ACTION (
  { '<stored_procedure_reference>' | <reference_statement> },
  { <array_of_arguments> | <array_construct_statement> },
  [ { 'ACTUAL' | 'PROJECTED' }, ]
  <threshold> )
Copy

Arguments

'stored_procedure_reference'

La représentation sérialisée de la chaîne qui se résout en une procédure. 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 la procédure à associer au budget.

array_of_arguments

Tableau d’arguments à transmettre à la procédure stockée.

array_construct_statement

Une instruction ARRAY_CONSTRUCT qui renvoie un tableau construit à partir de zéro, une ou plusieurs entrées.

{ 'ACTUAL' | 'PROJECTED'}

Contrôle si une action est déclenchée en fonction des dépenses réelles ou prévues.

'ACTUAL' — La procédure stockée est appelée lorsque les dépenses réelles atteignent le threshold. 'PROJECTED — La procédure stockée est appelée lorsqu’il est prévu que les dépenses atteignent le threshold.

Si omis, devient PROJECTED par défaut.

threshold

Pourcentage de la limite budgétaire. La procédure stockée est appelée lorsque Snowflake détermine que les dépenses réelles ou prévues dépassent ce pourcentage de la limite budgétaire.

Spécifiez un nombre compris entre 0 et 1 000, inclus.

Renvoie

Renvoie une valeur VARCHAR qui indique si la procédure a été correctement associée au budget.

Si la procédure n’a pas pu être associée au budget, la méthode renvoie un message d’erreur.

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 :

  • Rôle d’instance ADMIN <label-budgets_instance_roles> pour l’instance de budget.

  • Privilège USAGE sur la base de données et le schéma contenant l’instance de budget.

  • Privilège USAGE sur la base de données et le schéma qui contiennent la procédure stockée.

  • Privilège USAGE sur la procédure stockée.

Pour plus d’informations, voir Rôles et privilèges Budgets.

Notes sur l’utilisation

  • Le fait d’appeler cette méthode ne renvoie pas l’objet. Pour cette raison, vous ne pouvez pas utiliser le chaînage de méthodes pour appeler une autre méthode sur la valeur de retour de cette méthode. Au lieu de cela, appelez chaque méthode dans une instruction SQL distincte.

Exemples

Associer la procédure stockée alert_team au budget budget_db.sch1.my_budget de sorte qu’elle soit appelée lorsqu’il est prévu que les dépenses atteignent 75 % de la limite budgétaire :

CALL budget_db.sch1.my_budget!ADD_CUSTOM_ACTION(
  SYSTEM$REFERENCE('PROCEDURE', 'code_db.sch1.alert_team(string, string, string)', 'SESSION', 'USAGE'),
  ARRAY_CONSTRUCT('admin@example.com', 'Budget Alert', 'Spending at 75% of budget limit'),
  'PROJECTED',
  75);
Copy

Associer la procédure stockée alert_team au budget budget_db.sch1.my_budget de sorte qu’elle soit appelée lorsque les dépenses ont atteint 90 % de la limite budgétaire :

CALL budget_db.sch1.my_budget!ADD_CUSTOM_ACTION(
  SYSTEM$REFERENCE('PROCEDURE', 'code_db.sch1.alert_team(string, number)', 'SESSION', 'USAGE'),
  ARRAY_CONSTRUCT('Critical budget threshold', 90),
  'ACTUAL',
  90);
Copy