EXCEL导入SQL2005出现“文本被截断”的错误

来源:互联网 发布:思学通软件价格 编辑:程序博客网 时间:2024/05/30 04:35

zz http://abelstudy.spaces.live.com/Blog/cns!897200FEE9FDF237!305.entry

 

问题:EXCEL导入SQL2005出现"文本被截断"的错误

原理:JetOLEDB 提供程序读取注册表项以确定要读取来猜测的源列类型有多少行。 注册表设置是:

HKLM/Software/Microsoft/Jet/4.0/Engines/Excel/TypeGuessRows

默认情况下, 该项的值为 8。 因此, 提供扫描前 8 行的源数据以确定对列数据类型。 如果任何字段类似文本和长短数据是超过 255 个字符, 作为备注字段键入列时。 Jet 因此, 如果超过 255 个字符的源, 前 8 行中没有具有长度没有数据无法准确确定性质数据类型。

解决方法:

  1. EXCEL文件的前 8 行中设置一个长度大于255的,这样导入时就会猜测为NETXT,而不是nvarchar(255)
  2. 替代方法

    警告 : 如果注册表编辑器使用不当, 可能会造成严重问题, 可能需要重新安装操作系统。 Microsoft 无法保证您能解决因注册表编辑器使用不当而导致问题。 需要您自担风险使用注册表编辑器。

     

    若要更改值 TypeGuessRows , 使用以下步骤: 1. 在 开始 菜单上, 单击 运行 。 在 运行 对话框中, 键入 Regedt32然后单击 确定 。

    2. 注册表编辑器中打开以下项:

     

    HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Jet/4.0/Engines/Excel

    3. 双击 TypeGuessRows 。

    4. 在 DWORD 编辑器 对话框中, 单击 文章 下 Decimal 。 键入一个值介于 0 和 16, 含, 对 数值 数据。

    5. 单击 确定 , 然后退出注册表编辑器。

    第二种方法来变通办法 (不修改注册表) 此问题是使确保或更, 行与字段, 具有数据 255 字符均前 8 行的源数据文件中出现。

原创粉丝点击