【问题标题】:Import Data Wizard Does Not Like Data Type I Choose For A Column导入数据向导不喜欢我为列选择的数据类型
【发布时间】:2010-10-21 06:05:53
【问题描述】:

是否有其他人有同样的问题,当您将数据从 Excel 文件导入 MSSQL Server 2005 时,如果某些列主要包含数字数据,但即使您将列类型设置为 varchar,向导也无法导入那些解析为数字失败?

【问题讨论】:

    标签: sql-server-2005 ssis import-from-excel


    【解决方案1】:

    试试这个(注意:这些说明基于 Excel 2007)...

    以下步骤应强制 Excel 将列视为文本:

    使用 Excel 打开您的电子表格。

    通过单击列标题选择包含“主要是数字数据”的整个列。

    单击功能区菜单上的“数据”选项卡。

    选择文本到列。这将打开将文本转换为列向导。

    -在第 1 步:点击下一步

    -在第2步:点击下一步

    -在第三步:选择文本并点击完成

    保存您的 Excel 工作表。

    使用 SQL Server 2005 导入数据向导重试导入。

    【讨论】:

    • 不幸的是我有 excel 2002。我不得不将工作表保存为制表符分隔的 txt 文件来解决这个问题。这引起了其他头痛,但经过一些按摩后就起作用了。
    • 我认为在 Excel 2002 中,文本到列选项位于数据菜单下。
    • 这真的似乎对我也有用。 (使用 Excel 2007)。但是,逗号从 47,100 之类的值被删除为仅 47100,这是不可接受的。 (值不是数字!它是用逗号分隔的 47 和 100)。真的很难相信这是一个多么严重的问题,还有很多人对此表示沮丧,但没有真正简单的答案。
    • 略有不同...我选择了整个列,右键单击,设置单元格格式 -> 并在第一个选项卡上选择“文本”。
    【解决方案2】:

    您需要编辑 SSIS 使用的连接字符串。将此添加到字符串“IMEX=1;”的末尾(无引号)这告诉 SSIS/jet 不要试图弄清楚数据类型是什么。只需导入它们。

    【讨论】:

      【解决方案3】:

      您可以尝试调整 Jet 设置以导入 Excel 数据。在给定导入期间尝试确定列类型时,您可以强制 Jet 引擎对整个工作表进行采样。更改以下注册表项(先备份后),看看是否不这样做:

      HKLM\Software\Microsoft\Jet\4.0\Engines\Excel
      

      或者在 x64 上

      HKLM\Software\Wow6432Node\Microsoft\Jet\4.0\Engines\Excel
      

      将值 TypeGuessRows 设置为零。这将强制 Jet 对所有行进行采样以确定列类型。

      【讨论】:

      • 这似乎读取每一行每一列。对于多行的大工作表,可能需要很长时间。
      • 确实如此。但是,另一种方法是系统根据前 100 行左右猜测给定列应该是数字或日期,然后在第 748,456 行失败并终止整个过程,然后您可以重新开始。
      【解决方案4】:

      创建一个新列,该列是一个撇号 + 要导入的列的内容。这将强制它成为一个字符串

      ="'"&E2

      【讨论】:

        【解决方案5】:

        添加 IMEX=1 BEFORE HDR 设置对我有用。

        【讨论】:

          【解决方案6】:

          这是最好的解决方案:

          1. 单击功能区菜单上的文件,然后单击选项。

          2. 单击高级,然后在计算此工作簿时,选中将精度设置为显示复选框,然后单击确定。

          3. 点击确定。

          4. 在工作表中,选择要设置格式的单元格。

          5. 在主页选项卡上,单击旁边的对话框启动器按钮图像 编号。

          6. 在“类别”框中,单击“编号”。

          7. 在小数位数框中,输入小数位数 你想显示。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-01-21
            • 1970-01-01
            • 2012-07-24
            • 1970-01-01
            • 2014-09-14
            • 1970-01-01
            • 2014-01-22
            • 1970-01-01
            相关资源
            最近更新 更多