EXCEL某列长度超过255个字符导入SQL SERVER2017的处理方法

当Excel文件中存在超过255个字符的字符串时,导入数据库会遇到错误。解决方法包括调整Excel中超出长度的行位置、转换为CSV格式但需注意字符编码问题、修改注册表设置或通过数据处理截取字符串。此外,还可以考虑使用ETL工具进行列长度的自定义映射。
摘要由CSDN通过智能技术生成

问题描述:

[Excel 源 [1]] 错误: 输出“Excel 源输出”(9) 上的 输出列“Description 3”(546) 出错。返回的列状态是:“文本被截断,或者一个或多个字符在目标代码页中没有匹配项。”。

原因:

前8条是少于255的字符串,则设成nvarchar(255) 类型,但如果Excel后面的记录中有长度超过了excle默认的255个字符,则出现警告,源列属性不匹配,执行也通不过。使用Ntext类型也尝试过,不匹配。即使在导入在ETL设置映射时改变了字段类型也不行(它这个默认的只能通过加载excle来判断改字段的类型)。

解决方法:

  1. 最简单有效的就是直接将EXCLE里面超过字符长度超过255的那一行剪切到第一行来(可用“最合适列宽”来选中最长的那一行)
  2. 把EXCEL转换成CSV格式,然后使用平面文件源导入数据库(我自己没成功,转换后的字符是乱码)  。需要注意两点:

          1、输出列长度需要手动修改

          2、注意不同语言造成的Unicode字符转换问题,必要时先切换系统语言,再作转换。
  3. 修改注册表。网上修改注册表的方法有几种。分为不同引擎,不同位数的操作系统。这几种我刚开始都试了,结果都没用。后面还是去微软官方查到了改注册表的正确路径。建议这几种都可以试试。
    1. 微软官方:
    2. 分为不同引擎:

  4. 将excle里面长度超过255的字段截取成不超过255的多列。从而来加载到数据库中,最后再通过字符串拼接来达到目的。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值