Solução de problemas de orçamento

Neste tópico:

Os cenários a seguir podem ajudar você a solucionar problemas que podem ocorrer ao criar ou editar orçamentos:

Você não pode ativar o orçamento da conta

Existem vários motivos pelos quais você pode não conseguir ativar o orçamento da sua conta:

Erro

Unknown user-defined function SNOWFLAKE.LOCAL.ACTIVATE

Causa

Se sua conta Snowflake for nova, o orçamento da conta ainda não estará disponível em sua conta.

Solução

Aguarde até que o orçamento da conta esteja disponível na sua conta recém-criada. Você pode ativá-lo depois que estiver disponível.

Erro

FAILURE: Uncaught exception of type 'BUDGET_ALREADY_ACTIVATED' on line X at position X

Causa

O orçamento da conta já foi ativado.

Solução

Você pode chamar o método <budget_name>!GET_CONFIG para visualizar o carimbo de data/hora de ativação:

CALL SNOWFLAKE.LOCAL.ACCOUNT_ROOT_BUDGET!GET_CONFIG();
Copy

Erro

-20000 (P0001): Uncaught exception of type 'NO_PERMISSION_TO_ACTIVATE_BUDGET' on line X at position X

Causa

Sua conta ainda não oferece suporte ao recurso Budgets.

Solução

O recurso Budgets não está disponível para contas em regiões governamentais. O suporte para regiões governamentais estará disponível em uma versão futura.

Você não pode criar um orçamento personalizado

Existem vários motivos pelos quais você pode não conseguir criar um orçamento personalizado.

Erro

FAILURE: SQL access control error: Insufficient privileges to operate on class 'BUDGET'

Causa

A função que você está usando não tem os privilégios necessários para criar orçamentos personalizados.

Solução

Use uma função com os privilégios necessários. Consulte Crie uma função personalizada para criar orçamentos.

Erro

FAILURE: Uncaught exception of type 'STATEMENT_ERROR' on line 0 at position -1 :
Uncaught exception of type 'UNSUPPORTED_BUDGET_TYPE' on line X at position X

Causa

Você passa argumentos para o método do construtor para criar um orçamento.

Solução

Consulte CREATE BUDGET e edite sua instrução create.

Você não pode ativar um orçamento personalizado

Erro

FAILURE: Uncaught exception of type 'STATEMENT_ERROR' on line 0 at position -1 :
Uncaught exception of type 'UNSUPPORTED_BUDGET_TYPE' on line X at position X

Causa

Você tentou chamar o método ACTIVATE em um orçamento personalizado.

Solução

O método ACTIVATE está disponível apenas no orçamento da conta. Depois de criar um orçamento personalizado, use os métodos <budget_name>!SET_SPENDING_LIMIT e <budget_name>!SET_EMAIL_NOTIFICATIONS para configurar o orçamento e começar a receber e-mails de notificação.

Você não pode chamar métodos no orçamento da conta

Há vários motivos pelos quais a chamada de um método no orçamento da conta pode falhar.

Erro

-20000 (P0001): Uncaught exception of type 'FUNCTION_NOT_SUPPORTED_FOR_ACCOUNT_ROOT_BUDGET' on line 11 at position 18

Causa

Você tentou chamar qualquer um dos seguintes métodos no orçamento da conta:

Solução

Esses métodos não estão disponíveis no orçamento da conta. O orçamento da conta monitora todos os objetos suportados na conta e os objetos não podem ser adicionados ou removidos. Para obter mais informações, consulte Orçamento de conta e orçamentos personalizados.

Erro

-20000 (P0001): Uncaught exception of type 'ACCOUNT_ROOT_BUDGET_NOT_ACTIVATED' on line X at position X

Causa

Você tentou chamar um método no orçamento da conta antes que o orçamento da conta fosse ativado.

Solução

Ative o orçamento da conta.

Você não pode adicionar ou remover objetos de um orçamento personalizado

Para adicionar ou remover com sucesso um objeto de um orçamento personalizado, a função usada para chamar o método deve ter os privilégios e funções necessários.

Erro

002141 (42601): SQL compilation error:
Unknown user-defined function <budget_db>.<budget_schema>.<budget_name>!ADD_RESOURCE

Causa

A função que você usou para chamar o método de instância não tem os privilégios necessários para adicionar (ou remover) objetos do orçamento.

Solução

Conceda a função de instância e os privilégios necessários à função usada para chamar o método. Para obter mais informações, consulte Criação de uma função personalizada para monitorar um orçamento personalizado.

Erro

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

Causa

Você tentou adicionar um objeto a um orçamento personalizado, mas a função usada para chamar o método não tem os privilégios necessários.

Solução

Para adicionar (ou remover) um objeto de um orçamento, a função usada para chamar o método deve ter o privilégio APPLYBUDGET sobre o objeto. Se o objeto pai for um banco de dados ou esquema, você também deverá ter o privilégio USAGE no banco de dados e esquema que contém o objeto.

Para mais informações, consulte a lista de privilégios de objeto necessários.

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

Existem várias causas para esta mensagem de erro:

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

  • Você não tem os privilégios necessários no objeto para criar uma referência para ele. A referência válida é necessária para adicionar o objeto a um orçamento.

Solução

Você não pode definir notificações por e-mail para um orçamento

Os cenários a seguir podem ajudar você a solucionar problemas comuns ao chamar o método <budget_name>!SET_EMAIL_NOTIFICATIONS.

Erro

Unknown user-defined function <database_name>.<schema_name>.<budget_name>.SET_EMAIL_NOTIFICATIONS

Causa

A função que você usou para definir as notificações por e-mail para um orçamento personalizado não tem a função de instância ADMIN.

Solução

Use uma função com os privilégios e funções necessários. Consulte Requisitos de controle de acesso para SET_EMAIL_NOTIFICATIONS.

Erro

Integration '<INTEG_NAME>' does not exist or not authorized.

Causa

A integração de notificação não existe.

Solução

Use uma integração de notificação válida. Para obter mais informações, consulte Criar uma integração de notificação por e-mail. Inclua os endereços de e-mail para notificações de orçamento na lista ALLOWED_RECIPIENTS.

Erro

FAILURE: Uncaught exception of type 'EXPRESSION_ERROR' on line 16 at position 34 : Following email address(es) are not
allowed by the email integration <INTEGRATION_NAME>: [<email>]

Causa

Os endereços de e-mail não estão incluídos na integração de notificação.

Solução

Adicione os endereços de e-mail à integração de notificação ou use uma integração de notificação que inclua todos os endereços de e-mail na lista ALLOWED_RECIPIENTS.

Erro

Email recipients in the given list at indexes [<index_list>] are not allowed. Either these email addresses are not yet validated
or do not belong to any user in the current account.

Causa

Alguns ou todos os endereços de e-mail que você tentou adicionar não foram validados.

Solução

Consulte Verificar os endereços de e-mail dos destinatários da notificação por e-mail.

Você não pode chamar com sucesso o método GET_SERVICE_TYPE_USAGE

Os cenários a seguir podem ajudar você a solucionar problemas comuns ao chamar o método <budget_name>!GET_SERVICE_TYPE_USAGE.

Erro

001044 (42P13): SQL compilation error: error line 0 at position -1 Invalid argument types for function 'GET_SERVICE_TYPE_USAGE':
(VARCHAR(X), VARCHAR(X), VARCHAR(X), VARCHAR(X))

Causa

Você chamou o método com argumentos inválidos ou com o número errado de argumentos.

Solução

Verifique se os argumentos usados para chamar o método são válidos e se você incluiu todos os argumentos necessários.

Erro

002151 (22023): Uncaught exception of type 'STATEMENT_ERROR' on line 16 at position 23 : SQL compilation error:
[:TIME_DEPART] is not a valid date/time component for function DATE_TRUNC.

Causa

O argumento TIME_DEPART é uma cadeia de caracteres inválida.

Solução

Use um dos valores válidos listados para o argumento TIME_DEPART no tópico de referência.

Erro

100094 (22000): Uncaught exception of type 'STATEMENT_ERROR' on line 16 at position 23 : Unknown timezone: '<invalid_timezone>'

Causa

O argumento USER_TIMEZONE é uma cadeia de caracteres inválida.

Solução

Use uma cadeia de caracteres de fuso horário válida. Para obter mais informações, consulte as notas de uso para GET_SERVICE_TYPE_USAGE.

O recurso do Budgets não está disponível para sua conta

Erros

FAILURE: SQL compilation error: Class 'SNOWFLAKE.CORE.BUDGET' does not exist or not authorized.
000002 (0A000): Uncaught exception of type 'STATEMENT_ERROR' on line 0 at position -1 : Unsupported feature 'TOK_RESOURCE_GROUP'.

Causa

Sua conta ainda não oferece suporte ao recurso Budgets.

Solução

O recurso Budgets não está disponível para contas em regiões governamentais. O suporte para regiões governamentais estará disponível em uma versão futura.