2016-09-13 5 views
0

次の問題があります。私は1400文字のいくつかの行を持つフラットファイルを持っています。このファイルのBULK INSERTを1つのテーブルnvarchar(1400)で実行します。バルクUnicode文字を含む単一列のフラットファイルを挿入すると、行が切り捨てられます

文は以下の通りです:

BULK INSERT tempTable 
FROM 'path\file' 
WITH (FIELDTERMINATOR= '',ROWTERMINATOR = '\n',MAXERRORS = 0) 

これは、エラーなしで、正常に動作します。しかし、より詳細な検討の結果、230文字で「切り捨てられた」行があることがわかりました。

(ビッグ)崇高でファイルを開いた後、私は、この行が(括弧は、私は崇高でそれを見る方法です、正方形、ことになっている)[NUL]のように、これらの特殊文字の外観を中心に切り捨てられました。私はメモ帳でファイルを開くと

9999999999999 99999999999991000000JOHN DOE [NUL][NUL][NUL][NUL][NUL][NUL]ABCDE99999999 

お知らせのようなものは、文字がそのように、空のスペースに置き換えられます:、いずれの場合においても

9999999999999 99999999999991000000JOHN DOE   ABCDE99999999 

一括挿入を行うためにどのような方法がありますこれらの文字を切り捨てるのではなく、それらの文字を見つけた後も行を読み続けますか?

おかげ

答えて

2

私は同じ問題に直面しており、私たちは「SQL Serverインポートおよびエクスポートウィザードを」を使用して、それを解決しました。 Microsoft SQL Server管理スタジオ内で、オブジェクトエクスプローラを開き、データベース名を右クリックします。 「タスク」→「データのインポート」オプションを選択します。新しいSQL Serverのインポートとエクスポートウィザードウィンドウが開きます。フラットファイルとしてソースを選択し、フラットファイルを参照します。 [宛先]で[SQL Server用Microsoft OLE DBプロバイダ]を選択し、SQLサーバー名とデータベース名を入力します。次のページで、マッピングの編集(宛先テーブル)。希望、そう、これは動作します。

+0

ありがとうございますが、私が探していた解決策ではありません。これはETLソリューションの一部なので、ユーザーはSQL Serverと直接対話しません。 – Heathcliff

関連する問題