fbpx

Erro ao executar SP_SEND_MAIL via JOB

Erro ao executar SP_SEND_MAIL via JOB

No post de hoje vamos compartilhar o caso de um cliente que tem um job que manda um e-mail via SP_Send_Mail com o resultado de uma query no csv.

Porém o job falhava com a seguinte mensagem:

“Failed to initialize sqlcmd library with error number -2147467259. [SQLSTATE 42000] (Error 22050).  The step failed.”

 

Ao consultar a documentação da Microsoft ela informa que esse erro está na combinação dos seguintes parâmetros:

“The following error may occur when setting @querry_result_header to 0 and setting @querry_no_truncate to 1: Msg 22050, Level 16, State 1, Line 12: Failed to initialize sqlcmd library whith error number -21477024809”

 

O erro ocorre quando o parâmetro @query_result_header = 0 e o @query_no_truncate = 1. Mas o job estava fazendo exatamente o contrário @query_result_header = 1 e o @query_no_truncate = 0 (valor padrão quando não informado).

Portanto não era esse o problema.

Quando o comando do job era executado via ssms o erro não ocorria.

Fiz os testes na minha máquina e o job funcionou sem erros. Parti para verificar se o usuário que estava executando o job tinha os acessos necessários. No caso do cliente o usuário do serviço não existia no banco de dados, então criei o mesmo.

O acesso para execução da SP_Send_Mail é o acesso a ROLE DatabaseMailUserRole no MSDB. Concedi esse acesso ao usuário do serviço, porém o erro persistia.

Concedi esse acesso ao usuário do serviço, porém o erro persistia.

Criei então um profile para capturar os erros que ocorriam ao executar o job e foi assim que peguei que o erro era a falta de acesso à base onde o select estava sendo executado e não tinha nada a ver com a msg de erro do job.

Acesso de leitura concedida na base do select e erro resolvido.

 

Deixe uma resposta