none
Implicit conversion of varchar value to varchar cannot be performed RRS feed

  • 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.

    segunda-feira, 3 de junho de 2019 15:29

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 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]

    segunda-feira, 3 de junho de 2019 17:30
  • 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

    segunda-feira, 3 de junho de 2019 17:39
  • 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]


    segunda-feira, 3 de junho de 2019 18:01