问题描述:
付款单查询报错,错误堆栈信息如下:
Caused exception message is: DataLimitCaused exception message is: ORA-01445: cannot select ROWID from, or sample, a join view without a key-preserved table错误详细堆栈信息:java.lang.RuntimeException: com.kingdee.bos.SQLDataException: ORA-01445: cannot select ROWID from, or sample, a join view without a key-preserved table
原因分析:
无法从不带保留关键字的表的连接管视图中选择rowid或采样。因为子查询中查询出的记录不能保证唯一性,所以无法确认ROWID
解决方案一:推荐
请检查数据库版本是否符合EAS所要求的数据库最低版本,10.2.0.4。如果不满足要求,请升级数据库版本.
解决方案二:检查条件,看是否查询条件查询出的记录唯一,如果不是唯一的,试试在使用到的列上建立唯一索引或主键。(待完善)
解决方案三:(执行方言)此方案修改修改或会影响总账及其他模块性能变慢,此方法废弃。请勿修改此参数。
alter system set "_COMPLEX_VIEW_MERGING"=FALSE
alter system set "_SIMPLE_VIEW_MERGING"=FALSE
注:该方案是修改Oracle隐含参数,在网上搜到很多解决方案会让修改此参数,修改后会影响部分性能,请勿修改此参数。
推荐阅读