Ошибка "Не удалось найти хранимую процедуру ÿþ"
Я пытаюсь выполнить запрос после чтения содержимого из файла сценария 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 считает, что это должно быть имя хранимой процедуры, потому что хранимые процедуры - это единственные операторы, которые вы можете выполнить, указав только их имя. И покорно сообщает, что не может найти процедуру с таким названием.