2016-09-07 8 views
0

まず、SQL Server 2005 SP3のSQL Server 9.00.4035.00を使用しています。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;" 

このコマンドは、英語の文字はOKですが、ギリシャ語の文字は「??????」と表示されます。例えば

代わりの

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;" 
にギリシャaccoringためです

答えて

0

解決策が見つかりました。問題は私がビューから選択していたことでした。

は、だから私は、彼らが65001 -f使用しなければならないと私はVIEW1から選択された場合は、データが来ていた、DATABASE.TABLE1と私はTABLE1から選択された場合はTABLE1

から選択されたビューDATABASE.VIEW1を持っていました、データは???として来ていた。

VIEW1では、すでにVARCHARフィールドをVARCHARにキャストしていたという問題がありました。だから私がVARCHARをVARCHARにキャストしていた何らかの理由で、私が推測する照合が欠落していました。

+0

あなたがリンクサーバーにいない限り照合は問題であってはなりません。 UnicodeはNVARCHARとして、古いバージョンの場合はNTEXTとして保存する必要があります。 – scsimon

関連する問題