When I try to change my stored procedure (below) and I receive this error message:
“Implicit conversion of varchar value to varchar cannot be performed because the collation of the value is unresolved due to a collation conflict”
The error occurs in this line:
INSERT INTO @TempList (OrderID) VALUES (@EmpID)
I don´t understand what problem with collation exist.
Please, ideas about this..
Thanks
USE [database]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[database_0301_PRJ_dir_ger]
@EmpList varchar(100)
AS
DECLARE @TempList table (OrderID varchar(10))
DECLARE @EmpID varchar(10)
DECLARE @Pos int
IF @EmpList <> ''
BEGIN
SET NOCOUNT ON
SET @EmpList = LTRIM(RTRIM(@EmpList))+ ','
SET @Pos = CHARINDEX(',', @EmpList, 1)
IF REPLACE(@EmpList, ',', '') <> ''
BEGIN
WHILE @Pos > 0
BEGIN
SET @EmpID = LTRIM(RTRIM(LEFT(@EmpList, @Pos - 1)))
IF @EmpID <> ''
BEGIN
INSERT INTO @TempList (OrderID) VALUES (@EmpID)
END
SET @EmpList = RIGHT(@EmpList, LEN(@EmpList) - @Pos)
SET @Pos = CHARINDEX(',', @EmpList, 1)
END
END
SELECT dir.sigla + '-' + ger.nome AS dirger,
ger.codigo as gercodigo,
ger.nome as gernome,
dir.nome AS dirnome,
ger.diretoria as gerdiretoria
FROM d
bo.database_091500_GERENCIAS AS ger
INNER JOIN
dbo.database_090200_DIRETORIAS AS dir
ON
ger.diretoria = dir.codigo
WHERE
ger.diretoria IN (select * FROM @TempList)
END
It sounds like a configuration problem with language/internationalization.
Perhaps your client might be configured for one locale, and your database/database server for a different locale?
One workaround might be an explicit cast, for example:
http://www.sqlservercentral.com/Forums/Topic225939-8-1.aspx#bm225952