<budget_name>!ADD_RESOURCE

Adicione um objeto a um orçamento personalizado. O objeto deve ser adicionado por referência.

Consulte também:

<budget_name>!REMOVE_RESOURCE, <budget_name>!GET_LINKED_RESOURCES

Sintaxe

<budget_name>!ADD_RESOURCE( { '<object_reference>' | <reference_statement> } )
Copy

Argumentos

'object_reference'

A representação de cadeia de caracteres serializada que resolve um objeto. 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 objeto a ser adicionado ao orçamento.

Retornos

Successfully added resource to resource group

Requisitos de controle de acesso

Os seguintes privilégios e funções são necessários para chamar esse método para um orçamento personalizado:

  • Uma função com a função de instância ADMIN para a instância de orçamento.

  • Uma função que recebeu o privilégio USAGE no banco de dados e no esquema que contém a instância de orçamento.

  • Uma função com o privilégio APPLYBUDGET no objeto a ser adicionado.

Notas de uso

  • Você só pode adicionar objetos a orçamentos personalizados.

  • Você não pode criar uma referência para o banco de dados SNOWFLAKE e não pode adicioná-lo a um orçamento.

Exemplos

  1. Crie uma referência para um objeto e adicione-o a um orçamento.

    Crie uma referência para a tabela t1:

    SELECT SYSTEM$REFERENCE('TABLE', 't1', 'SESSION', 'APPLYBUDGET');
    
    Copy

    Retorna:

    ENT_REF_TABLE_5862683050074_5AEB8D58FB3ACF249F2E35F365A9357C46BB00D7
    

    Adicione a tabela t1 ao orçamento my_budget no esquema budget_db.budget_schema:

    CALL budget_db.budget_schema.my_budget!ADD_RESOURCE(
      'ENT_REF_TABLE_5862683050074_5AEB8D58FB3ACF249F2E35F365A9357C46BB00D7');
    
    Copy
  2. Adicione um objeto a um orçamento usando uma instrução SYSTEM$REFERENCE.

    Adicione a tabela t1 ao orçamento my_budget no esquema budget_db.budget_schema:

    CALL budget_db.budget_schema.my_budget!ADD_RESOURCE(
      SELECT SYSTEM$REFERENCE('TABLE', 't2', 'SESSION', 'APPLYBUDGET'));
    
    Copy

Mensagens de erro

Os cenários a seguir podem ajudar você a solucionar problemas que podem ocorrer ao adicionar recursos a um orçamento personalizado.

Erro

Unknown user-defined function <budget_db>.<budget_schema>.ADD_RESOURCE

Causa

A função que você usou para chamar esse método não tem a função de instância ADMIN.

Solução

Use uma função que tenha as funções e os privilégios necessários para adicionar objetos ao orçamento. Consulte Requisitos de controle de acesso.

Erro

002003 (02000): SQL compilation error:
<object_type> '<object_name>' does not exist or not authorized.

Causa

A função que você usou para chamar esse método não tem o privilégio APPLYBUDGET no objeto que você está tentando adicionar ao orçamento.

Solução

Use uma função que tenha as funções e os privilégios necessários para adicionar objetos ao orçamento. Consulte Requisitos de controle de acesso.

Erro

Uncaught exception of type 'EXPRESSION_ERROR' on line 10 at position 21 :
Privilege 'APPLYBUDGET' is not authorized on the reference object.

Causa

Você tentou criar uma referência para um objeto sem especificar o parâmetro PRIVILEGE na instrução SYSTEM$REFERENCE.

Solução

Crie a referência com o privilégio APPLYBUDGET no objeto.

Erro

505001 (55000): Uncaught exception of type 'EXPRESSION_ERROR' on line 10
at position 21 : Specified object does not exist or not authorized for
the reference.

Causa

Você tentou adicionar o banco de dados SNOWFLAKE a um orçamento personalizado com uma instrução SYSTEM$REFERENCE inline.

Solução

O banco de dados SNOWFLAKE não pode ser adicionado a um orçamento. Consulte as Notas de uso acima.