最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

ORA-00979:notaGROUPBYexpression报错处理

来源:动视网 责编:小采 时间:2020-11-09 10:39:20
文档

ORA-00979:notaGROUPBYexpression报错处理

ORA-00979:notaGROUPBYexpression报错处理:环境:Oracle Database 11gR2(11.2.0.2) on Linux 故障现象: 执行Group By语句报错ORA-00979。具体的SQL如下:SQLgt; select 环境:Oracle Database 11gR2(11.2.0.2) on Linux 故障现象: 执行Group By语句报错ORA-
推荐度:
导读ORA-00979:notaGROUPBYexpression报错处理:环境:Oracle Database 11gR2(11.2.0.2) on Linux 故障现象: 执行Group By语句报错ORA-00979。具体的SQL如下:SQLgt; select 环境:Oracle Database 11gR2(11.2.0.2) on Linux 故障现象: 执行Group By语句报错ORA-


环境:Oracle Database 11gR2(11.2.0.2) on Linux 故障现象: 执行Group By语句报错ORA-00979。具体的SQL如下:SQLgt; select

环境:Oracle Database 11gR2(11.2.0.2) on Linux
故障现象: 执行Group By语句报错ORA-00979。
具体的SQL如下:
SQL> select a.d1,a.EXIT_type,round(a.cnt1/b.cnt2*100,2) from
2 (select substr(LOGIN_DATE,1,8) d1,EXIT_type,count(*) cnt1 from xxx_connect_log group by substr(LOGIN_DATE,1,8),EXIT_type) a,
3 (select substr(LOGIN_DATE,1,8) d2 ,count(*) cnt2 from xxx_connect_log group by substr(LOGIN_DATE,1,8) ) b
4 where A.d1=B.d2 order by a.d1,a.EXIT_type;
(select substr(LOGIN_DATE,1,8) d2 ,count(*) cnt2 from xxx_connect_log group by substr(LOGIN_DATE,1,8) ) b
*
ERROR at line 3:
ORA-00979: not a GROUP BY expression


这条语句在其他大区的DB上执行均OK,在体验服DB上执行报错。从语法上看,确实是完全没问题的。


碰到这种ORA-报错的情况,我们可以通过设置ErrorStack对错误堆栈进行跟踪,将错误的后台信息比较详尽的转储到跟踪文件,,供分析研究。


ErrorStack的四个级别及说明:
0 Error stack only
1 Error stack and function call stack
2 As level 1 plus the process state
3 As level 2 plus the context area


ErrorStack仅在特定的错误出现的时候才被触发。可以在实例或者会话级别进行设置。


下面我们进行979的ErrorStack跟踪:
SQL> alter system set events='979 trace name errorstack forever,level 3';

System altered.

SQL> select a.d1,a.EXIT_type,round(a.cnt1/b.cnt2*100,2) from
2 (select substr(LOGIN_DATE,1,8) d1,EXIT_type,count(*) cnt1 from xxx_connect_log group by substr(LOGIN_DATE,1,8),EXIT_type) a,
3 (select substr(LOGIN_DATE,1,8) d2 ,count(*) cnt2 from xxx_connect_log group by substr(LOGIN_DATE,1,8) ) b
4 where A.d1=B.d2 order by a.d1,a.EXIT_type;
(select substr(LOGIN_DATE,1,8) d2 ,count(*) cnt2 from xxx_connect_log group by substr(LOGIN_DATE,1,8) ) b
*
ERROR at line 3:
ORA-00979: not a GROUP BY expression


SQL> alter system set events='979 trace name errorstack off';

System altered.

相关阅读:

SPFILE 错误导致数据库无法启动(ORA-01565)

ORA-01172、ORA-01151错误处理

ORA-00600 [2662]错误解决

ORA-01078 和 LRM-00109 报错解决方法

ORA-00471 处理方法笔记

文档

ORA-00979:notaGROUPBYexpression报错处理

ORA-00979:notaGROUPBYexpression报错处理:环境:Oracle Database 11gR2(11.2.0.2) on Linux 故障现象: 执行Group By语句报错ORA-00979。具体的SQL如下:SQLgt; select 环境:Oracle Database 11gR2(11.2.0.2) on Linux 故障现象: 执行Group By语句报错ORA-
推荐度:
标签: ora 报错 by
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top