4 に答える
私の場合、CODEPAGE オプションを使用してエンコードの問題を修正できます。
BULK
INSERT #CSV
FROM 'D:\XY\xy.csv'
WITH
(
CODEPAGE = 'ACP',
DATAFILETYPE ='char',
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
FIRSTROW = 2
)
可能な値: CODEPAGE = { 'ACP' | 'OEM' | '生' | 'code_page' } ]
オプションの詳細については、こちらを参照してください: BULK INSERT
コメントで答えました。やってみましたか?
http://msdn.microsoft.com/en-us/library/ms189941.aspx
オプションDATAFILETYPE='widenative'
Esailigaからのコメントに基づいて、一括インポートの前または後にテキストが切り捨てられましたか。CSVファイル自体が1バイトのように聞こえることに同意します。Unicodeには、オプションDATAFILETYPE='widenative'が必要です。CSVファイルが1バイトの場合、マジックトランスレーションバックではありません。
残念なことに、éは拡張ASCIIであり、SQL文字でサポートされているため、問題がCSVにあるという証拠が増えています。
SELECT CAST('é'ASchar(1))
これは拡張ASCII(<255)として機能することに注意してください
ソースに戻る必要があるようです。
?SQLでは不明です。メモ帳の�と同じです。
何年もの間、Microsoft がこの明らかなバグを修正していないことが、今でも信じられません。èéêë などはすべて ascii(<255) なので問題ないはずです。このクエストは多くのサイトで何度も何度も提起されており、その質問はまだ答えられていません
私のデータはExcelのテーブルにあります。ステートメントへの挿入を生成すると、テーブルが 2 回目に解析され、asccii > 'z' が検索され、テーブル セット列ステートメントが生成および更新され、インポートされたデータが上書きされます。面倒だが実行可能
やりました!何年もの間、私たちは皆、間違った場所を探していました。作業は必要ありません。スクリプトを書き直す必要はありません...
問題はSSMSにあります...「クエリ」を右クリックして「新しいクエリ」を実行すると、ファイルの名前を変更できますが、作成することはできません...
しかし...「Ctrl + N」を押すと、編集する新しいクエリウィンドウが表示されますが、ファイルは作成されません...したがって、自分で保存し、保存ボタンでエンコードを選択します...リストの一番下に向かってUTF-8 (署名なし) コードページ 65001 を見つけます
そして、それだけです...
スクリプトを次々と実行し、"ctrl+N" を使用して新しいクエリ ウィンドウを開き、既存のクエリからコピー アンド ペーストして、上記の手順に従って保存します。そしてまるで魔法のように
私のようにExcelにテーブルがある場合...テーブルを解析して、出力を1シートの新しいワークブックの1列目に書き込み、次に保存してutf-8エンコーディングを選択します
「-- utf-8」などのコメントを含むテンプレート ファイルを使用して処理を高速化します。utf-8 として保存し、Excel に貼り付けられた *.sql のファイル リストを使用して、b1 で =concatenate("ren templatefile.txt ", char(34), a1, char(34)) のリストを連結し、ドロップします。下
何年にもわたって手動で解決してきた結果、私は文字通り、発見に興奮して汗をかきました。私をとても動揺させてくれてありがとう