<budget_name>!ADD_CUSTOM_ACTION

Verknüpft eine gespeicherte Prozedur mit einem Budget, sodass die Prozedur aufgerufen wird, wenn die voraussichtlichen oder tatsächlichen Ausgaben einen bestimmten Schwellenwert erreichen. Die Prozedur muss über eine Referenz verknüpft werden.

Weitere Informationen dazu finden Sie unter Kundenspezifische Aktionen für Budgets.

Syntax

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

Argumente

'stored_procedure_reference'

Die Darstellung einer serialisierten Zeichenfolge, die in eine Prozedur aufgelöst wird. Diese Zeichenfolge ist die Ausgabe der Funktion SYSTEM$REFERENCE.

reference_statement

Eine SYSTEM$REFERENCE-Anweisung, die eine Referenz für die mit dem Budget zu verknüpfende Prozedur erzeugt.

array_of_arguments

Array von Argumenten, die an die gespeicherte Prozedur übergeben werden sollen.

array_construct_statement

Eine ARRAY_CONSTRUCT-Anweisung, die ein Array zurückgibt, das aus Null, einem oder mehreren Eingaben aufgebaut ist.

{ 'ACTUAL' | 'PROJECTED'}

Steuert, ob eine Aktion auf der Grundlage der tatsächlichen oder der voraussichtlichen Ausgaben ausgelöst wird.

'ACTUAL' — Die gespeicherte Prozedur wird aufgerufen, wenn die tatsächlichen Ausgaben den threshold.:code:'PROJECTED erreichen — Die gespeicherte Prozedur wird aufgerufen, wenn die Ausgaben voraussichtlich den threshold erreichen.

Wird nichts angegeben, wird standardmäßig PROJECTED verwendet.

threshold

Prozentsatz des Budgetlimits. Die gespeicherte Prozedur wird aufgerufen, wenn Snowflake feststellt, dass die tatsächlichen oder voraussichtlichen Ausgaben diesen Prozentsatz der Budgetbeschränkung überschreiten.

Geben Sie eine Zahl zwischen 0 und 1.000 (einschließlich) an.

Rückgabewerte

Gibt einen VARCHAR-Wert zurück, der angibt, ob die Prozedur erfolgreich mit dem Budget verknüpft wurde oder nicht.

Wenn die Prozedur nicht mit dem Budget verknüpft werden konnte, gibt die Methode eine Fehlermeldung zurück.

Anforderungen an die Zugriffssteuerung

Die folgenden Berechtigungen und Rollen sind erforderlich, um diese Methode für ein Budget aufzurufen:

  • ADMIN-Instanzrolle für die Budgetinstanz.

  • USAGE-Berechtigung für die Datenbank und das Schema, die die Budgetinstanz enthalten.

  • Die USAGE-Berechtigung für die Datenbank und das Schema, die die gespeicherte Prozedur enthalten.

  • Die USAGE-Berechtigung für die gespeicherte Prozedur.

Weitere Informationen dazu finden Sie unter Rollen und Berechtigungen für Budgets.

Nutzungshinweise

  • Wenn Sie diese Methode aufrufen, wird das Objekt nicht zurückgegeben. Aus diesem Grund können Sie keine Methodenverkettung verwenden, um eine andere Methode mit dem Rückgabewert dieser Methode aufzurufen. Rufen Sie jede Methode in einer separaten SQL-Anweisung auf.

Beispiele

Verknüpfen Sie die gespeicherte alert_team-Prozedur mit dem:code:budget_db.sch1.my_budget-Budget, sodass es aufgerufen wird, wenn die Ausgaben voraussichtlich 75 % der Budgetbeschränkung erreichen werden:

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

Verknüpfen Sie die gespeicherte alert_team-Prozedur mit dem:code:budget_db.sch1.my_budget-Budget, sodass es aufgerufen wird, wenn die Ausgaben 90 % der Budgetbeschränkung erreicht haben:

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