<budget_name>!ADD_CUSTOM_ACTION¶
Associa um procedimento armazenado a um orçamento para que o procedimento seja chamado quando os gastos projetados ou reais atingirem um limite especificado. O procedimento deve ser associado por referência.
Para obter mais informações, consulte Ações personalizadas para orçamentos.
Sintaxe¶
<budget_name>!ADD_CUSTOM_ACTION (
{ '<stored_procedure_reference>' | <reference_statement> },
{ <array_of_arguments> | <array_construct_statement> },
[ { 'ACTUAL' | 'PROJECTED' }, ]
<threshold> )
Argumentos¶
'stored_procedure_reference'A representação de string serializada que resolve um procedimento. Esta cadeia de caracteres é a saída da função SYSTEM$REFERENCE.
reference_statementUma instrução SYSTEM$REFERENCE que cria uma referência para o procedimento a ser associado ao orçamento.
array_of_argumentsMatriz de argumentos a serem passados para o procedimento armazenado.
array_construct_statementUma instrução ARRAY_CONSTRUCT que retorna uma matriz construída a partir de zero, uma ou mais entradas.
{ 'ACTUAL' | 'PROJECTED'}Controla se uma ação é acionada com base no gasto real ou projetado.
'ACTUAL'– o procedimento armazenado é chamado quando o gasto real atinge othreshold.'PROJECTED– o procedimento armazenado é chamado quando o gasto projetado atinge othreshold.Se omitido, assume como padrão``PROJECTED``.
thresholdPorcentagem do limite de orçamento. O procedimento armazenado é chamado quando o Snowflake determina que o gasto real ou projetado excede essa porcentagem do limite do orçamento.
Especifique um número entre 0 e 1.000, inclusive.
Retornos¶
Retorna um valor VARCHAR que indica se o procedimento foi associado com sucesso ao orçamento.
Se o procedimento não puder ser associado ao orçamento, o método retornará uma mensagem de erro.
Requisitos de controle de acesso¶
Os seguintes privilégios e funções são necessários para chamar este método para um orçamento:
função de instância ADMIN <label-budgets_instance_roles> para a instância do orçamento.
Privilégio USAGE no banco de dados e no esquema que contém a instância de orçamento.
Privilégio USAGE no banco de dados e esquema que contêm o procedimento armazenado.
Privilégio USAGE no procedimento armazenado.
Para obter mais informações, consulte Funções e privilégios do Budgets.
Notas de uso¶
Chamar esse método não retorna o objeto. Por isso, você não pode usar o encadeamento de métodos para chamar outro método no valor de retorno deste método. Em vez disso, chame cada método em uma instrução SQL separada.
Exemplos¶
Associe o procedimento armazenado alert_team ao orçamento budget_db.sch1.my_budget para que ele seja chamado quando a previsão de gastos atingir 75% do limite orçamentário:
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);
Associe o procedimento armazenado alert_team ao orçamento budget_db.sch1.my_budget para que ele seja chamado quando os gastos atingirem 90% do limite orçamentário:
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);