sqlcmd实用程序不显示希腊字母

时间:2016-09-07 07:37:54

标签: sql sql-server sql-server-2005 character-encoding sqlcmd

首先,我使用的是SQL Server 9.00.4035.00,即SQL Server 2005 SP3。

我使用以下命令从视图中获取结果,该视图从包含英文或希腊字符的列的表中获取行。

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适用于符合this link

的UTF-8
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;" 

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。问题是我从一个视图中选择。

所以我有DATABASE.TABLE1和一个从TABLE1中选择的视图DATABASE.VIEW1

如果我从TABLE1中选择,则数据即将使用-f 65001 如果我从VIEW1中选择,则数据将显示为???。

问题在于,在VIEW1中我将已经的VARCHAR字段转换为VARCHAR。因此,出于某种原因,当我将VARCHAR转换为VARCHAR时,我猜错了Collat​​ion。