我試圖將製表符分隔文件導入到SQL中。 DB中的一個字段是decimal(15,2)
。但是我收到的文件可能有一些指數值,如-2.702159776E17
,這顯然不適合我在數據庫中的字段。當數值超出範圍錯誤發生10次時,BCP文件未完全加載
問題是如果該指數文件超過10條記錄,BCP未在完整數據中加載。只要遇到指數值的第10個實例,就會跳過文件的其餘部分。
我使用下面的命令BCP加載數據:
dbname.dbo.tablename in "filelocation" -c -F 2 -b 10000 -h "TABLOCK" -T -S servername
文件我想進口已經有20萬分的記錄。但是我們可以清楚地看到它只處理了18,000條記錄,其餘都被跳過了。 BCP的輸出如下。
Starting copy...
SQLState = 22003, NativeError = 0
Error = [Microsoft][SQL Server Native Client 11.0]Numeric value out of range
SQLState = 22003, NativeError = 0
Error = [Microsoft][SQL Server Native Client 11.0]Numeric value out of range
SQLState = 22003, NativeError = 0
Error = [Microsoft][SQL Server Native Client 11.0]Numeric value out of range
SQLState = 22003, NativeError = 0
Error = [Microsoft][SQL Server Native Client 11.0]Numeric value out of range
SQLState = 22003, NativeError = 0
Error = [Microsoft][SQL Server Native Client 11.0]Numeric value out of range
SQLState = 22003, NativeError = 0
Error = [Microsoft][SQL Server Native Client 11.0]Numeric value out of range
SQLState = 22003, NativeError = 0
Error = [Microsoft][SQL Server Native Client 11.0]Numeric value out of range
SQLState = 22003, NativeError = 0
Error = [Microsoft][SQL Server Native Client 11.0]Numeric value out of range
SQLState = 22003, NativeError = 0
Error = [Microsoft][SQL Server Native Client 11.0]Numeric value out of range
SQLState = 22003, NativeError = 0
Error = [Microsoft][SQL Server Native Client 11.0]Numeric value out of range
18149 rows copied.
Network packet size (bytes): 4096
Clock Time (ms.) Total : 265 Average : (68486.79 rows per sec.)
完美,謝謝 – Kesava