Когда я пытаюсь изменить свою хранимую процедуру (ниже), и я получаю это сообщение об ошибке:
"Неявное преобразование значения varchar в varchar не может быть выполнено, поскольку сопоставление значения не разрешено из-за конфликта сопоставления"
Ошибка в этой строке:
INSERT INTO @TempList (OrderID) VALUES (@EmpID)
Я не понимаю, какие существуют проблемы с сопоставлением.
Пожалуйста, идеи об этом ..
Спасибо
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