【问题标题】:BULK INSERT from CSV into SQL Server causes error从 CSV 批量插入到 SQL Server 会导致错误
【发布时间】:2017-05-30 10:00:25
【问题描述】:

我有一个 CSV 格式的简单表格:

999,"01/01/2001","01/01/2001","7777777","company","channel","01/01/2001"
990,"01/01/2001","01/01/2001","767676","hhh","tender","01/01/2001"
3838,"01/01/2001","01/01/2001","888","jhkh","jhkjh","01/01/2001"
08987,"01/01/2001","01/01/2001","888888","hkjhjkhv","jhgjh","01/01/2001"
8987,"01/01/2001","01/01/2001","9999","jghg","hjghg","01/01/2001"
jhkjhj,"01/01/2001","01/01/2001","9999","01.01.2001","hjhh","01/01/2001"
090009,"","","77777","","","01/01/2001"
980989,"01/01/2001","01/01/2001","888","","jhkh","01/01/2001"
0000,"01/01/2001","01/01/2001","99999","jhjh","","01/01/2001"
92929,"01/01/2001","01/01/2001","222","","","01/01/2001"

我正在尝试使用 BULK INSERT (Transact-SQL) 将该数据导入 SQL Server

set dateformat DMY;

BULK INSERT Oracleload
FROM '\\Mac\Home\Desktop\Test\T_DOGOVOR.csv'
WITH
    (FIELDTERMINATOR = ',',
     ROWTERMINATOR = '\n',
     KEEPNULLS);

在输出我得到下一个错误:

消息 4864,第 16 级,状态 1,第 4 行
第 1 行第 2 列 (date_begin) 的批量加载数据转换错误(指定代码页的类型不匹配或无效字符)......

日期格式可能有问题。但是我需要编写什么脚本来修复该错误?

请帮忙。

提前致谢。

【问题讨论】:

    标签: sql-server csv import


    【解决方案1】:

    BULK INSERT(也不是 bcp)无法(正确)处理 CSV 文件,specially if they have (correctly) " quotes。替代方案是 SSIS 或 PowerShell

    【讨论】:

      【解决方案2】:

      我总是在 Notepad++ 中查看数据,看看是否有一些奇怪的字符,或者不可打印的字符,比如换行符什么的。为此,您似乎可以使用记事本打开它(如果您没有 Notepad++)执行查找替换“到无...保存文件,然后重新执行批量加载。

      【讨论】:

        【解决方案3】:

        这条记录:

        jhkjhj,"01/01/2001","01/01/2001","9999","01.01.2001","hjhh","01/01/2001"

        第一列具有某种数字类型。您不能将 jhkjhj 值放入该字段。

        此外,某些记录在日期字段中有空值 ("")。这些很可能被解释为空字符串,而不是null 日期,并且不能正确转换。

        但错误是指“第 1 行,第 2 列”。就是这个值:

        “2001 年 1 月 1 日”

        同样,导入将其解释为字符串,而不是日期。我怀疑它是在尝试导入引号 ("),而不是仅仅将它们用作分隔符。

        您可以尝试批量加载到一个特殊的保留表,然后从那里重新导入。或者,您可以更改数据的导出方式或编写程序对其进行预清理——从不应该包含引号的字段中去除引号,隔离包含不会插入异常文件和报告的数据的记录。

        【讨论】:

          猜你喜欢
          • 2020-11-09
          • 2023-03-03
          • 2017-03-30
          • 1970-01-01
          • 2019-06-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-09-03
          相关资源
          最近更新 更多