项目开发遇到的问题,在此做下小结:
一。ORA-00060(死锁)
此类问题一般是由于在同一目标表上并行执行多条insert语句造成,并且目标表上有索引。 1、检查target load type,注意设为normal. 2、检查是否有partition,不能设分区,如果要设分区,则需在pre-sql中先删除目标表上的索引,然后在post-sql中重新创建。
二。对目标表进行插入更新操作注意以下几方面: 1. 目标表要有默认的主键; 2. Mapping中的UPDATE组件设为DD_UPDATE; 3. Session中Mapping的目标表已勾选Update else Insert选项: 4. Session中Properties选项中的Treat source rows as 选项要选Data driven项;
三。MONITOR运行WORKFLOW时报错:报错信息 ORA-26002
报错原因:目标表中有索引,而Target load type(目标加载类型)是BULK的类型以致报错,将BULK改为Normal类型。
注:在目标表中无索引的情况下Target load type(目标加载类型)选BULK类型比Normal类型加载速度快些,但当目标表有索引的情况下,用Normal类型。
四。分母为零有两种情况
1。分母值为零
2.分母值为NULL 值
表达式判断分母为零写法:IIF((ISNULL(分母) OR 分母=0),0,表达式),当分母带有加,减运算符时,需要对整个分母进行括起来运算;
五。ORA-01555(快照过旧)
原因:数据过大,资源紧张,运行时间过长导致
解决方案,优化方案,重新运行方案。通常可以通过增大rollback seg来解决问题。