Может кто-нибудь объяснить, почему этот блок PL / SQL возвращает ошибку ORA-00979 «не выражение GROUP BY»?Я чувствую, что принимаю сумасшедшие таблетки.
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 (Oracle LiveSQL).
Кто-нибудь еще сталкивался с этим?В 12c я думал, что PL / SQL использует тот же парсер SQL, что и движок SQL?