anyfeng
作者anyfeng·2015-03-24 22:52
软件开发工程师·某零售企业

zplume:Excel作为数据源的N宗罪

字数 652阅读 1519评论 0赞 0

博客前言:

今年部门里面要求把decommission老系统提上了日程,每个组都有不同的指标。因此前段时间开始了decommission第一个老系统。老系统需要把Excel作为数据源,用VBA去抽取数据。木有各种项目文档,木有各种数据字典。只有一代一代的opration同事手把手的交接。苦啊!于是我们就开始了用Excel作为数据源的漫漫征程。

环境:SQL SERVER 2008, SSIS 2008

罪行描述:

(按罪大恶极程度从上往下排序)

1. 假如Excel某列存储的是带两位小数的数字比如23.72,导入数据库后会变成23.71999999或者科学计数法;

2. 若该列中前几行是存储的正常数字(连续的数字比如87231234),后面有一些数据中间会有一些空格(比如76 21 89 198),或者第一位数是0(比如09823124),后面说的两种情况被导入数据库之后都会被置成null;

3. Excel里面的sheet名字必须固定写死,且不能有空格。

解决方法:

最好将excel转换为听话的csv文件进行处理,在csv里面,将csv导入staging表里面全是基本字符串格式,想咋样就咋样,想干嘛就干嘛。

 在SSIS里面可以用script command的方式引用excel,或者在advanced editor里面进行设置.

结论:

没事的话最好不要将Excel作为数据源,因为里面的单元格格式实在是很多ETL工具难以完美驾驭的,遇到问题即便也能解决,但是也要脱你几层皮,程序员的头发不容易啊。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广