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 adicionar ou remover objetos de um orçamento personalizado
Você não pode definir notificações por e-mail para um orçamento
Você não pode chamar com sucesso o método GET_SERVICE_TYPE_USAGE
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();
 | 
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  | 
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: 
  | 
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.  |