Я пишу скрипт в Sybase ASE, где я вызываю хранимую процедуру в SQL Server.У меня проблема в том, что я получаю сообщение об ошибке от Sybase, но не от SQL Server.
Сценарий в Sybase выглядит следующим образом:
declare @input varchar(4000)
select @input = '111,222,333,444,555'
exec GATEWAY.MyDataBase..MyStoredProcedure @input
Иэто ошибка:
[Ошибка] Строки сценария: 1-5 -------------------------- Преобразованиене удалось преобразовать значение varchar '555 .............................................................................................................................................»к типу данных int.Сообщение: 245, Уровень: 16, Состояние: 1 Сервер: GATEWAY, Строка: 0
Моя хранимая процедура в SQLServer
Не знаю, почемуSybase добавляет это правильное заполнение.Единственный способ заставить его работать - объявить переменную @input
как varchar(255)
или короче.
То, что я попытался без удачи:
- Добавление в sybase rtrim и ltrim
- Установка переменной как TEXT
- Добавление rtrim и ltrim в SQLServer
- Добавление
replace(@input,' ', '')
- Требуется повторить проблему в SQLServer с добавлением панеливправо, но он все еще работает.
Важно то, что: Я могу исключить его из SQLServer, но он выдает ошибку из Sybase с теми же входными данными .
Любая помощь будет принята с благодарностью.Я предполагаю, что это как-то связано с размером varchar, но понятия не имею.