有人能解释为什么这个PL/SQL块返回ORA-00979“not a GROUP BY expression”错误吗?我觉得我在吃疯狂的药丸。
BEGIN
FOR r IN ( SELECT substr(o.object_name,1,30) oname
FROM user_objects o
GROUP BY substr(o.object_name,1,30)
) LOOP
NULL;
END LOOP;
END;
ORA-00979: not a GROUP BY expression
ORA-06512: at line 2
00979. 00000 - "not a GROUP BY expression"
*Cause:
*Action:
CREATE PROCEDURE
CREATE PROCEDURE mattp AS
BEGIN
FOR r IN ( SELECT substr(o.object_name,1,30) oname
FROM user_objects o
GROUP BY substr(o.object_name,1,30)
) LOOP
NULL;
END LOOP;
END;
我在12.1.0.2上。我在18c(oraclelivesql)中没有得到错误。
还有其他人遇到过这种情况吗?我认为在12c中PL/SQL使用了与SQL引擎相同的SQL解析器?