CSVファイルを作成するJavaコードがあり、SQLサーバーの「BULK INSERT」を使用してデータをデータベースに挿入します。フォーマットファイルがありません。SQL サーバーは 2008 です。
単体テストを介してコードを実行し、次の SQL コードを実行すると、すべて正常に動作し、データがテーブルに挿入されます。
declare
@csvFileName VARCHAR (1024)= 'file.csv',
@csvFormatFileName VARCHAR (1024)= null,
@tableName VARCHAR (256) = 'tableName';
EXECUTE (
'BULK INSERT '+ @tableName +' FROM ''' + @csvFileName + ''' WITH
(FIRSTROW=2, FIELDTERMINATOR=''\t'', ROWTERMINATOR=''\n'', MAXERRORS=0);');
私の Java コードが実稼働環境で実行され、CSV ファイルが作成されるときに、作成された CSV ファイルの 1 つを取得して上記の SQL を実行すると、エラーは発生しませんが、テーブルにデータが挿入されず、次のようになります。
(0 row(s) affected)
問題を引き起こすのは本番DBサーバーと開発DBサーバーであると最初に考えましたが、そうではありませんでした。
これは、CSV ファイルのサンプル データです。
ID Date number1 number2 number3
88 2013-01-14 2 0 0.00
64 2013-01-14 0 0 0.00
差額の賭けは見られません。問題なく動作するCSVファイルとそうでないCSVファイル!結局、それらは同じ Java コードで作成されます。
タブ、改行などを使用して、ファイルの内容をそのまま表示できるエディターはありますか?
どんな助けでも大歓迎です。