经常做ETL,遇到一个小问题.一般写程序,无非是用游标或者是一条SQL搞定.
相对来说一条SQL更简洁,效率更高,不过业务逻辑过于复杂的时候,也只能用游标.
另外还有一种情况,如果有数据问题导致ETL出错,
用游标可以迅速定位到那一条记录,而且可以不用回滚(暂时不处理错误数据).我想综合两者的性能,既不想用游标降低了效率(非用不可的时候除外),又想在出错时迅速定位到那条记录,
查来查去,只找到了10g的一个新特性log errors可以满足.
(http://www.itpub.net/viewthread.php?tid=906901不知道的可以去看看)但我觉得还是有点麻烦,不知道高手们有项目中通常是怎么做的?是否有更高效的方法?
相对来说一条SQL更简洁,效率更高,不过业务逻辑过于复杂的时候,也只能用游标.
另外还有一种情况,如果有数据问题导致ETL出错,
用游标可以迅速定位到那一条记录,而且可以不用回滚(暂时不处理错误数据).我想综合两者的性能,既不想用游标降低了效率(非用不可的时候除外),又想在出错时迅速定位到那条记录,
查来查去,只找到了10g的一个新特性log errors可以满足.
(http://www.itpub.net/viewthread.php?tid=906901不知道的可以去看看)但我觉得还是有点麻烦,不知道高手们有项目中通常是怎么做的?是否有更高效的方法?
解决方案 »
- Toad 导入dmp文件失败!The Oracle Export Utility executable must be specified
- 求助一条sql
- ORACLE序列的当前值可不可以修改?
- oracle,请问用触发器如何引用B表某列数据插入A表
- 大表数据删除问题, 会delete 的都可以进来看看, 要多少分都可以!
- 如何将一个数据库中表1的内容转移到另一个数据库相同结构的表2中
- 捕获DML语句出错:ora_sql_txt(sql_text)为空
- Orcale双机数据库(ha方式)在IBM AIX下的安装问题
- ERROR: ORA-06544:ORA-06553:ORA-06508:ORA-06512:等错误信息
- ORA-14063 唯一/朱约束条件关键字中存在无用索引 求大神帮忙
- Oracl中数据备份相关
- PL/SOL怎么设置sequence啊?
例如在数据抽取的时候,可考虑先放入中间表,然后把数据按照业务所要表达的真正类型严格进行转换,比如有些业务数据的时间字段是字符类型的,先把其转换date类型,不合法的串如'123456'将其剔除或者转换为某个时间,这样避免在该字段上的运算出错.
基本上要处理的表,我都会设计一个主键列,
这个列相当于sql server中的identity,
然后一次处理一条,也达到了游标的效果。
如果出错,当然可以插日志表
2.对于数据查询不正确 我一般是查看数据 分析数据 在解决