<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> )
Copy

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_statement

Uma instrução SYSTEM$REFERENCE que cria uma referência para o procedimento a ser associado ao orçamento.

array_of_arguments

Matriz de argumentos a serem passados ​​para o procedimento armazenado.

array_construct_statement

Uma 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 o threshold. 'PROJECTED – o procedimento armazenado é chamado quando o gasto projetado atinge o threshold.

Se omitido, assume como padrão``PROJECTED``.

threshold

Porcentagem 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);
Copy

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);
Copy