2016-09-07 2 views
0

Прежде всего, я использую SQL Server 9.00.4035.00, который является SQL Server 2005 SP3.утилита sqlcmd, не показывающая греческие буквы

Я использую команду ниже для получения результатов из представления, которое извлекает строки из таблицы, которая содержит столбцы с английскими или греческими символами.

sqlcmd -W -S SERVER_NAME -d DATABASE_NAME -U USER_NAME -P PASSWORD -s "|" -Q "set nocount on; set ansi_warnings off;SELECT * from DATABASE.VIEW;" 

Эта команда возвращает строки с английскими символами в порядке, но когда дело доходит до греческих символов, я получаю только ??????

Например вместо

1110|20160907|ΓΙΩΡΓΟΣ 

Я получаю

1110|20160907|???????? 

Я уже пробовал -f и -u, но ни один из них не похоже на работу. Вот как я использовал их:

650001 для UTF-8 в соответствии с this link

sqlcmd -W -S SERVER_NAME -d DATABASE_NAME -U USER_NAME -P PASSWORD -f 65001 -s "|" -Q "set nocount on; set ansi_warnings off;SELECT * from DATABASE.TABLE;" 

1253 для греческого в этом Согласно наблюдениям book

sqlcmd -W -S SERVER_NAME -d DATABASE_NAME -U USER_NAME -P PASSWORD -f 1253 -s "|" -Q "set nocount on; set ansi_warnings off;SELECT * from DATABASE.TABLE;" 

опции -u

sqlcmd -W -S SERVER_NAME -d DATABASE_NAME -U USER_NAME -P PASSWORD -u -s "|" -Q "set nocount on; set ansi_warnings off;SELECT * from DATABASE.TABLE;" 

ответ

0

Я нашел решение. Проблема заключалась в том, что я выбирал из представления.

Так что я был DATABASE.TABLE1 и вид DATABASE.VIEW1 который отбирал из TABLE1

Если бы я выбирал из TABLE1, данные придет, как они должны с помощью -f 65001 Если я выбирал из view1 , данные шли как.

Проблема в том, что в VIEW1 я выбрасывал уже поле VARCHAR в VARCHAR. Поэтому по какой-то причине, когда я бросал VARCHAR в VARCHAR, мне не хватало Collation, я думаю.

+0

сопоставление не должно было быть проблемой, если вы не были на связанном сервере. Unicode следует хранить как NVARCHAR, или NTEXT для более старых версий. – scsimon