当前位置: 代码迷 >> Oracle技术 >> oracle 在select 语句中 添加了 rowid 导致查询报分组异常
  详细解决方案

oracle 在select 语句中 添加了 rowid 导致查询报分组异常

热度:771   发布时间:2016-04-24 08:04:53.0
oracle 在select 语句中 添加了 rowid 导致查询报分组错误
一直运行正常的程序,突然反馈不正常.
查看日志之后显示:
引用
ORA-00937: not a single-group group function
select count(c_bale) balecount from b_bale_data where c_factorybatchno = 'xxxxx'



在数据库中查询

select SQL_TEXT, first_load_time
from v$sqlarea

结果如下
引用
SQL_TEXT FIRST_LOAD_TIME
select count(rowid) balecount from b_bale_data where c_factorybatchno = :"SYS_B_0"    2015-10-16/11:33:31
select count(rowid) balecount, b_bale_data.ROWID from b_bale_data where c_factorybatchno = :"SYS_B_0"    2015-10-16/11:33:31


会多一条
引用
select count(rowid) balecount, b_bale_data.ROWID from b_bale_data where c_factorybatchno = :"SYS_B_0"


请问这是什么问题? 
------解决思路----------------------
你看看那条sql_text是全的么,检查下sql_fulltext
正常情况下这条错误的sql语句通不过语法检查,不会进入v$sqlarea,可能是个bug
清下共享池再看看
ALTER SYSTEM FLUSH SHARED_POOL;
------解决思路----------------------
应该是触发到了,不一定是你贴出来的触发的,检查下其他的,比如程序是否封装了分页的公共方法等等
  相关解决方案