Представление — это источник данных для отчета, поэтому и group by с order by.
rownum можно и убрать, но помоему он мало влияет на производительность, запрос практически одинаково отрабатывает что с ним, что без него.
Что означает "не хватает прав напрямую"?
Запрос выполняется под пользователем user1, и в схеме этого же пользователя я пытаюсь создать представление.
user1 входит в роль role1.
В схеме scheme2 выполнялась команда GRANT ALL ON SCHEME2.TABLE TO ROLE1.
У меня несколько похожих представлений (использующих таблицы из схемы SCHEME2), но проблема только с этим представлением.
Вот полный скрипт таблицы SCHEME2.TABLE:
CREATE TABLE BONUS_LIST
(
BONUS_ID NUMBER NOT NULL,
BONUS_TYPE_ID NUMBER NOT NULL,
BONUS_STATE_ID NUMBER NOT NULL,
BONUS_DATE DATE NOT NULL,
IS_DELETED NUMBER(1) NOT NULL,
DESCRIPTION VARCHAR2(200 CHAR) NOT NULL,
ACCIDENT_ID NUMBER,
EXEC_DATE DATE
);
CREATE UNIQUE INDEX BONUS_LIST_PK ON BONUS_LIST (BONUS_ID);
ALTER TABLE BONUS_LIST ADD (
CONSTRAINT BONUS_LIST_PK
PRIMARY KEY
(BONUS_ID)
USING INDEX BONUS_LIST_PK);
ALTER TABLE BONUS_LIST ADD (
CONSTRAINT BONUS_LIST_R01
FOREIGN KEY (BONUS_TYPE_ID)
REFERENCES BONUS_TYPE (BONUS_TYPE_ID),
CONSTRAINT BONUS_LIST_R02
FOREIGN KEY (BONUS_STATE_ID)
REFERENCES BONUS_STATE (BONUS_STATE_ID));
GRANT ALTER, DELETE, INSERT, SELECT, UPDATE, ON COMMIT REFRESH, QUERY REWRITE, DEBUG, FLASHBACK ON BONUS_LIST TO BILLING_ROLE;