スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

SQL ServerでBULK INSERT (BCP)する時の終端文字トラブル(1A)

SQL Serverで、テキストファイルをBULK Insertで取り込もうとしたら、
「」
というエラーが出て取り込めなかった。

ファイルをバイナリエディタで見ると、[1A]というのが最後についていた。
これは、UNIXでテキストファイルを作った際の終端文字

これがあることで、BULKINSERTできない。

解決策は、「そのファイルをコピーして[1A]をなくす」といったベタなものしか見当たらなかった。

なので、次のようなちょっとカッコ悪い解決策。

--- バッチコマンド(コピー)をSQL内で使うため、sp_cmdshellを利用可能にする ---
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
EXEC sp_configure 'xp_cmdshell', 1
GO
RECONFIGURE
GO

--- 元データの終端文字(1A)を取り除くため、コピーコマンドを実行 ---
xp_cmdshell 'copy /Y ***元ファイル名***.csv /a ***新ファイル名*** /b'''

--- BULK INSERTで取り込み ----------------------------
BULK INSERT     テーブル名
    FROM        '***新ファイル名***'
    WITH (
        FIELDTERMINATOR  = '',''
      , ROWTERMINATOR    = ''\n''
    )
;
スポンサーサイト

トラックバック

コメント

コメントを残す

Secret



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。