Inquiridor
Implicit conversion of varchar value to varchar cannot be performed

Pergunta
-
Pessoal boa tarde,
Na query abaixo estou recebendo erro de collation, porem não estou conseguindo resolver. Alguma ajuda por favor.
SET @Job = CAST( (
SELECT td = [Job_Name] + '</td>'
+ '<td>' + [Dt_Execucao] + '</td>'
+ '<td>' + [Run_Duration] + '</td>'
+ '<td>' + [SQL_Message] + '</td>'
FROM (
-- Dados da Tabela do EMAIL
SELECT [Job_Name],
[Dt_Execucao],
[Run_Duration],
[SQL_Message]
FROM #Alerta_Job_Failed
) AS D ORDER BY [Job_Name] DESC
FOR XML PATH( 'tr' ), TYPE) AS VARCHAR(MAX)
)
Message
Executed as user: NT AUTHORITY\LOCAL SERVICE.
Implicit conversion of varchar value to varchar cannot be performed because the collation of the value is unresolved due to a collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Latin1_General_CI_AS" in add operator. [SQLSTATE 42000] (Error 457). The step failed.
Todas as Respostas
-
Jonivaldo,
Tendo como base a mensagem que você compartilhou, estamos se deparando com um conflito entre collation entre supostamente valores varchar que não podem ser convertidos.
Aparentemente essa mensagem de erro esta sendo apresentada na execução de um JOB.
1 - Você poderia descrever o que este job executa?
2 - Quais são seus steps, e em qual dos steps esta mensagem é apresentada?
3 - Seria possível compartilhar o código que esta sendo utilizado?
Observe que os collations envolvidos neste job se referem a SQL_Latin1_General_CP1_CI_AS e Latin1_General_CI_AS, sendo o primeiro um collation nativo do SQL Server e o um collation que o SQL Server reconhece, mas é considerado como collation de sistema operacional.
4 - Por acaso você esta fazendo alguma integração de dados entre sistemas diferentes?
Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-
Pedro boa tarde,
Este job apenas realiza uma verificação para informar se algum job de execução diária falhou. Não é feita nenhuma integração de dados entre sistemas apenas uma execução local. Em outro servidor o job funciona perfeitamente.
Att..
Jonivaldo
-
Jonivaldo,
Ok, obrigado. Em qual banco de dados este job esta configurado para ser executado?
Se for um banco de dados de usuário, qual seria o collate utilizado? Agora se for um banco de dados de sistema por exemplo: MSDB ou TempDB qual seria o collation?
Você destacou que no outro servidor o job é executado, se possível, gostaria de saber:
1 - Em qual banco de dados?
2 - Qual seria o collate database?
Por gentileza, poderia alterar esta parte do seu código:
) AS D ORDER BY [Job_Name] DESC FOR XML PATH( 'tr' ), TYPE) AS VARCHAR(MAX) )
Para:
) AS D ORDER BY [Job_Name] DESC FOR XML PATH( 'tr' ), TYPE) AS NVARCHAR(MAX) )
Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
- Editado Junior Galvão - MVPMVP segunda-feira, 3 de junho de 2019 18:01
- Sugerido como Resposta Junior Galvão - MVPMVP terça-feira, 8 de outubro de 2019 13:33