ORA-30926: unable to get a stable set of rows in the source tables

一.经检查,这个错误是由于数据来源表(即语句中,using后面的from关键字后面的表)存在数据重复造成的。在实际项目研发中,我们一般不能随便改动数据表的记录,那么如何避免这种错误的产生以及如何改正错误呢?

1.去除from后面表的重复数据 distinct

2.使用row_number()函数,把重复记录排序,然后子查询只取rd=1的行,这样的子查询生成的记录都是只有一条,再执行语句,就高枕无忧啦,再也不怕数据源表重复数据错误提示了啊。

(select * from(select row_number() over(partition by 字段名 order by 字段名)rd,i.*,i.rowid row_id from 表名 i)where rd=1) 

二.还有可能是原表数据,某一字段数据里面有空格.

trim去除空格就好了.
---------------------
作者:lk_0518
 
版权声明:本文为博主原创文章,转载请附上博文链接!