Excel文件导入SQL SERVER出现截断错误的解决办法

作 者:

作者简介:
胡碧波,仙桃市审计局

原文出处:
审计月刊

内容提要:

02


期刊代号:V3
分类名称:审计文摘
复印期号:2019 年 01 期

关 键 词:

字号:

      审计实践中,在运用SQL SERVER导入导出向导,导入Excel数据时,若某列数据太长,会提示“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”的错误,而终止数据的导入,直接影响下一步的数据分析。

      以导入某工商注册登记数据为例。工商注册登记表中有“企业名称”、“法定代表人”、“企业地址”、“经营范围”等字段。其中,“企业名称”、“法定代表人”、“企业地址”几列的数据长度一般都在20个字符以内,而“经营范围”这列的部分数据长度超过255个字符(SQL SERVER默认导入字符个数上限是255个),若不经过任何处理直接导入SQL SERVER中便会出现文本被截断的错误(如图1)。

      

      一、出现错误的可能原因

      1.导入SQL2008时设置数据库字段Varchar长度不够;

      2.数据项文本过长,超过4000;

      3.Excel表中前8行“经营范围”列的最大长度不够大,存在超过该长度的数据。

      二、解决办法

      1.导入时修改Varchar长度为足够长;

      2.导入时设置截断出错时忽略,可解决某些超长记录无法导入的问题;

      3.将Excel表中“经营范围”列第一行中记录设足够长,导入后再替换。

      三、实现步骤

      步骤一:在工商注册登记Excel表中使用len函数查看“经营范围”列的长度并按长度降序排序。(经笔者测试,SQL SERVER在读取EXCEL时,会根据第一行的数据量大小确定列的类型和长度。如果第一行各列的数据都比较小,而后面某行某列的数据比较大时,会报截断错误。)

      

      步骤二:在SQL SERVER导入和导出向导中,编辑映射-修改列映射大小为MAX。

      

      通过上述两个步骤,有效地解决了因字段内容太长而导致数据导入失败的问题,为审计人员进一步开展审计分析提供了数据基础,提高了审计效率。

相关文章: