Ошибка "Не удалось найти хранимую процедуру ÿþ"

Я пытаюсь выполнить запрос после чтения содержимого из файла сценария SQL, присвоения его переменной и последующего выполнения содержимого. Тогда я получаю эту ошибку, говоря Could not find stored procedure 'ÿþ', Пожалуйста, помогите мне понять проблему. Спасибо.

Информация:

SQL Server 2014

Версия SSMS - 12.0.4100.1

1 ответ

Решение

ÿþ это один из способов интерпретации двух байтов метки порядка байтов UTF-16, которая является \xFF и \xFE.

Эти две буквы вы получаете, когда читаете файл, который был сохранен в кодировке UTF-16 с помощью инструмента, который не знает - или, что более вероятно, не настроен для использования - Unicode.

Например, когда вы редактируете текстовый файл с помощью Блокнота Windows и выбираете "Юникод" в качестве кодировки файла при сохранении, Блокнот будет использовать UTF-16 для сохранения файла и пометит его двумя упомянутыми байтами в начале.

Если что-либо, что вы используете для чтения файла, не знает о том, что файл является Unicode, тогда он будет использовать кодировку байтов по умолчанию вашего компьютера для декодирования этого текстового файла.

Теперь, если кодировкой по умолчанию является Windows-1252, как в вашем случае, тогда ÿþ это то, что вы получаете, потому что есть \xFF ÿ и \ xFE это þ,

Следовательно, когда представлены ÿþSQL Server считает, что это должно быть имя хранимой процедуры, потому что хранимые процедуры - это единственные операторы, которые вы можете выполнить, указав только их имя. И покорно сообщает, что не может найти процедуру с таким названием.

Другие вопросы по тегам