<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> )
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_statementEine SYSTEM$REFERENCE-Anweisung, die eine Referenz für die mit dem Budget zu verknüpfende Prozedur erzeugt.
array_of_argumentsArray von Argumenten, die an die gespeicherte Prozedur übergeben werden sollen.
array_construct_statementEine 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 denthreshold.:code:'PROJECTEDerreichen — Die gespeicherte Prozedur wird aufgerufen, wenn die Ausgaben voraussichtlich denthresholderreichen.Wird nichts angegeben, wird standardmäßig
PROJECTEDverwendet.thresholdProzentsatz 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);
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);