【发布时间】:2017-09-16 07:42:58
【问题描述】:
我正在尝试将制表符分隔文件导入 SQL。 DB 中的字段之一是decimal(15,2)。但是我收到的文件可能有一些指数值,比如-2.702159776E17,这显然不适合我在 DB 中的字段。
问题是如果该指数文件的记录超过 10 条,则 BCP 不会加载完整的数据。一旦遇到指数值的第 10 个实例,它就会跳过文件的其余部分。
我正在使用下面的 BCP 命令来加载数据:
dbname.dbo.tablename in "filelocation" -c -F 2 -b 10000 -h "TABLOCK" -T -S servername
我尝试导入的文件有 200,000 条记录。但是我们可以清楚地看到它只处理了 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.)
【问题讨论】:
标签: sql-server bcp