请参阅我的 CSV 文件的这个小样本:
"ID","TRANSACTION_TIME","CONTAINER_NUMBER","EVENT"
33115541,"2019-04-03 00:47:41.000000","MSKU1128096",
33115538,"2019-04-03 01:34:49.000000","MSKU1128096","Gate Out"
33115545,"2019-04-03 00:47:55.000000","MSKU4717839",
这是我创建的格式文件
14.0
4
1 SQLCHAR 0 0 ",\"" 2 ID ""
2 SQLCHAR 0 0 "\",\"" 3 TRANSACTION_TIME ""
3 SQLCHAR 0 0 "\",\"" 4 CONTAINER_NUMBER ""
4 SQLCHAR 0 0 "\"\r\n" 5 EVENT SQL_Latin1_General_CP1_CI_AS
问题是第 4 列可能有空值,如您从第 1 行和第 3 行看到的(不包括标题)
请参阅下面我的 BULK INSERT 命令
bulk insert dbo.DRISPIN_CONTAINER_HISTORY_STG1
from 'e:\dri_container_history_initial.csv'
with (
firstrow = 2,
formatfile = 'e:\container_history_initial.fmt'
)
当我运行它时,我收到以下错误:
消息 8152、级别 16、状态 13、行 305
字符串或二进制数据将被截断。
我也尝试将前缀长度指定为 2,但得到一些不同的错误。
我知道我可以将带有限定符的值放入暂存表中,然后将它们删除。但理想情况下,我想看看是否有办法用 BULK INSERT 或 BCP 做到这一点
提前致谢