paul_vin Ответов: 1

Ошибка преобразования в тип varchar значение 'НС' в тип данных int.


Я пишу код PL/SQL для обновления конкретной таблицы на основе условия.
Я хочу заменить его
"NA" +@cnt
значение для NA1, NA2, NA3 и так далее.
поэтому я написал следующий код. в SQL Server 2012.

[Integration]

DECLARE @cnt INT = 1;
DECLARE @S#No INT = 0;
DECLARE @Val varchar(255);

set @S#No=(select max(S#No) from [dbo].[AD_Data_Ruf])
print @S#No
WHILE @cnt < @S#No
BEGIN
DECLARE @EmailAddress nvarchar(250)

set @EmailAddress=(select [Email Address] from [dbo].[AD_Data_Ruf] where S#No = @cnt)
   --PRINT 'Inside simulated FOR LOOP on TechOnTheNet.com';
   if(@EmailAddress='"NA" +@cnt')
   set @Val = 'NA' +@cnt;
   update [dbo].[AD_Data_Ruf] set  [Email Address] =@Val 

    PRINT @EmailAddress
   SET @cnt = @cnt + 1;
END;

--PRINT 'Done simulated FOR LOOP on TechOnTheNet.com';
GO



но это показывает ошибку при
set @Val = 'NA' +@cnt;


Что я уже пробовал:

Установите значения переменной в статическую строку + значение переменной.
следующим образом.

set @Val = 'NA' +@cnt;


где NA - статическое значение, где as
@cnt
является переменным.

но он показывает ошибку как
Msg 245, Level 16, State 1, Line 16
Conversion failed when converting the varchar value 'NA' to data type int.


тип данных
@Val
переменная-varchar(250).

пожалуйста, предложите, где я должен внести изменения в код

Richard MacCutchan

Вам нужно преобразовать целочисленное значение в строку, чтобы объединить эти два значения.

1 Ответов

Рейтинг:
12

phil.o

Вы не можете просто добавить строку и число в SQL. Вы должны привести число к строке.

set @Val = 'NA' + CAST(@cnt AS varchar(12));


MadMyche

+5