私は¬
フィールド区切り文字と[CR][LF]
行ターミネータを持つUTF-8ファイルを持っています。SQLバルク挿入UTF-8
DECLARE @bulk_cmd varchar(1000)
SET @bulk_cmd = 'BULK INSERT [test].pcb_Load
FROM ''T:\pcb_Workspace_2\Outputs\pcb\Load\pcb_MS_TEST_2.txt''
WITH (FIELDTERMINATOR = ''¬'', ROWTERMINATOR = '''+CHAR(10)+''',FIRSTROW=2)'
EXEC (@bulk_cmd)
SELECT * FROM test.pcb_load
:私は以下のように表内のtxtタイルをロードするために一括挿入を使用しています12.0.5556.0(X64)
- SQLのバージョンは、Microsoft SQL Server 2014(SP2-CU7)(KB4032541)であります私はコードページ65001、行ターミネーター\ r、\ n、\ r \ n、0x0aを使用しようとしましたが、何も動作せず、次のエラーが発生します。
メッセージ4866、レベル16、状態8、行1
一括読み込みに失敗しました。行1、列1のデータファイルで列が長すぎます。フィールドターミネータと行ターミネータが正しく指定されていることを確認してください。メッセージ7301、レベル16、状態2、行1
は、OLE DBプロバイダリンクサーバー "BULK" "(ヌル)" から必要なインターフェース( "IID_IColumnsInfo")を取得できません。
コードページを削除してCHAR(10)を使用すると(つまりスクリプトより)、ファイルは読み込まれますが、すべての文字列の末尾にハイフンが残ります。
出力データは、しかし、ハイフンはファイルに正しいではありません。この
Col1 Col2 Col3 Col4
- 0- pcb1412- DD-
- 0- pcb2134- GFD-
- 0- pcb324- DDX-
- 0- pcb1234- DDR-
のように見えます。私が間違っている場所に助言してもらえますか?それはあなたの本当の問題の原因ではないですが
おかげ
私は16進値で試していましたが運はありませんでした。あなたは正しいですが、それはファイルUTF-16を変換することになると思われます。 – BIQuad