2015-09-02 16 views
0

我有90%的第一個字段爲空的源文件。我想用BCP實用工具將此文件加載到SQL Server表中。當我運行BCP命令時,BCP實用程序無法識別或區分記錄。
我的源文件的數據如下。

|100168|27238800000|14750505|1|273 |100168|27238800000|14750505|1|273 |100681|88392930052|37080101|1|252 |101014|6810000088|90421505|12|799 |101595|22023000000|21050510|8|780

我使用如果第一列爲空,則BCP不起作用

**bcp [DBNAME].[dbo].[TABLE1] in \\filelocation\filename -e \\filelocation\filename_Error.txt -c -t | -S ServerName -T -h TABLOCK -m 1** 


我在error.txt收到錯誤消息

如#@行1,列28:字符串數據,右截斷@# 100168 27238800000 14750505 1 273
100168 | 27238800000 | 14750505 | 1 | 273。這裏BCP不能識別 記錄。由於此BCP正試圖將下一條記錄數據加載到導致數據截斷的最後一個 字段中。

表架構是

CREATE TABLE [DBO].[TABLE1]( 
FLD1 VARCHAR(10) 
,FLD2 VARCHAR(10) 
,FLD3 VARCHAR(22) 
,FLD4 VARCHAR(15) 
,FLD5 VARCHAR(10) 
,FLD6 VARCHAR(12)) 

回答

1

您需要引用管道。管(字符|)用於重定向的命令行

以下簡化線的工作原理與樣品

bcp.exe [db].dbo.[table1] in "path\Data.dat" -S".\instance" -T -c -t"|"

予省略了誤差極限-m標準輸出,日誌-e和表鎖提示-h,但這些不應該影響導入,但如果你仍然有問題嘗試引用參數,如服務器名稱和文件名

我用一個文本文件與標準\r\n行終止符作爲expec ted by -c

相關問題