0
我有一個創建CSV文件的Java代碼,然後使用SQL Sever「BULK INSERT」將數據插入數據庫;我沒有格式文件。在SQL Server爲2008年批量插入CSV文件
當我運行代碼直通單元測試,然後運行下面的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文件之一,並運行上面的SQL,它給了我沒有錯誤,但沒有數據被插入到表中,我只是得到:
(0 row(s) affected)
我首先想到的其生產數據庫服務器與開發數據庫服務器,導致問題,但噸帽子並非如此。
這是CSV文件中的樣本數據:
ID Date number1 number2 number3
88 2013-01-14 2 0 0.00
64 2013-01-14 0 0 0.00
我看不出有什麼區別的賭注。運行時沒有問題的CSV文件和沒有問題的文件!畢竟它們是用相同的Java代碼創建的。
是否有任何編輯器能夠像標籤,新行一樣向我顯示文件的內容......?
任何幫助,非常感謝。
對於csv文件'FieldTerminator'應該是','。你爲什麼使用'\ t'分隔符作爲csv文件?如果不將它們存儲爲逗號分隔值,則可以將該文件保存爲'.txt'而不是'.csv'。 – 2013-02-20 17:19:45
我使用\ t b/c分隔我的領域。 – blueSky 2013-02-20 17:23:34
然後不要使用'.csv'擴展名來使用'.txt'文件,'.csv'用於逗號分隔值。如果在'csv'文件中沒有用','分隔所有字段將被視爲一列 – 2013-02-20 17:24:35