Тип данных параметра хранимой процедуры, допускающий буквенно-цифровые значения - PullRequest
3 голосов
/ 02 мая 2011

У меня есть хранимая процедура для SQL 2000, которая имеет входной параметр с типом данных varchar (17) для обработки буквенно-цифрового идентификатора транспортного средства (VIN).Однако всякий раз, когда я при вводе значения, в котором есть числовая цифра, я ввожу значение параметра, он выдает ошибку.Похоже, принимать только буквенные символы.Что я тут не так делаю?

Ответы [ 2 ]

5 голосов
/ 02 мая 2011

Судя по комментариям, существует тонкая «особенность» SQL Server, позволяющая использовать буквы a-z в качестве сохраненных параметров процедуры без разделителей. Это было там навсегда (начиная с 6.5 по крайней мере)

Я не уверен в полных правилах, но это продемонстрировано в MSDN (переименование SQL Server и т. Д.) : разделителей вокруг параметра "local" нет. И я только что нашел эту статью KB

В этом случае это может начинаться с числа, которое разрывается. Я предполагаю, что это работает для ограниченного числа (но, как я уже сказал, я не уверен в полных правилах).

Редактировать: подтверждено Мартином как "разрывы с начальным номером", ОК для "содержащего числа"

0 голосов
/ 02 мая 2011

Это не сильно помогает, но где-то в вашем коде есть ошибка, опечатка или недосмотр. Я потратил два с лишним года, работая с VIN в качестве параметров, и, кроме сожаления, что не сделал его char (17) вместо varchar (17), у нас никогда не возникало проблем с передачей буквенно-цифровых значений VIN. Где-то, и я предполагаю, что это на уровне приложения, что-то не нравится цифрам - возможно, фильтр ищет только буквы алфавита?

...