Я создал две таблицы tab1 и tab2 в user1, а user2 имеет право доступа к ней. table1 и table2 - это синонимы, созданные в user2 для tab1 и tab2 соответственно.
Теперь я создал представление для пользователя 2, соединив (внутреннее объединение) эти две таблицы, и запрос представления имеет полный доступ к обеим таблицам согласно плану объяснения, который я создал.
Таблица2 проиндексирована.
структура запроса и таблицы находится в части запроса:
Table1:
Name Null? Type
-------- -------- ----------
PERSONID NOT NULL NUMBER(38)
TASKID NUMBER(38)
table2
Name Null? Type
---- -------- -------------------------------------
ID NOT NULL NUMBER(38)
TASK VARCHAR2(25) (task column is indexed)
Запрос TaskView:
Create or replace view TaskView AS select t1.personid,t1.taskid,t2.task from table1 t1 INNER JOIN table2 t2
on t1.taskid=t2.id where t2.task is not null ORDER BY t1.personid;
Объяснить план:
explain plan set STATEMENT_ID='task_test1' for select * from taskview;