Для SELECT план построился:
Код: Выделить всё
SQL> EXPLAIN PLAN FOR
SELECT * FROM hr.employees WHERE employee_id = 107;
SQL> select plan_table_output from table(dbms_xplan.display('plan_table',null,'typical'));
Plan hash value: 1833546154
---------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 72 | 1 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| EMPLOYEES | 1 | 72 | 1 (0)| 00:00:01 |
|* 2 | INDEX UNIQUE SCAN | EMP_EMP_ID_PK | 1 | | 0 (0)| 00:00:01 |
---------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("EMPLOYEE_ID"=107)Из документации EXPLAIN PLAN, требуются права на выполнение SQL-запроса, для которого определяется план выполнения при EXPLAIN PLAN.
Действительно, если выдать права на вставку в таблицу:
GRANT INSERT ON table TO user
То функция EXPLAIN PLAN начинает выдавать план выполнения без ошибок:
Код: Выделить всё
SQL> EXPLAIN PLAN FOR
INSERT INTO hr.employees_new (EMPLOYEE_ID,FIRST_NAME,LAST_NAME,EMAIL,PHONE_NUMBER,HIRE_DATE,JOB_ID,SALARY,COMMISSION_PCT,MANAGER_ID,DEPARTMENT_ID) SELECT EMPLOYEE_ID,FIRST_NAME,LAST_NAME,EMAIL,PHONE_NUMBER,HIRE_DATE,JOB_ID,SALARY,COMMISSION_PCT,MANAGER_ID,DEPARTMENT_ID FROM hr.employees WHERE employee_id = 107;
SQL> select plan_table_output from table(dbms_xplan.display('plan_table',null,'typical'));
Plan hash value: 1833546154
----------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------------------------
| 0 | INSERT STATEMENT | | 1 | 72 | 1 (0)| 00:00:01 |
| 1 | LOAD TABLE CONVENTIONAL | EMPLOYEES_NEW | | | | |
| 2 | TABLE ACCESS BY INDEX ROWID| EMPLOYEES | 1 | 72 | 1 (0)| 00:00:01 |
|* 3 | INDEX UNIQUE SCAN | EMP_EMP_ID_PK | 1 | | 0 (0)| 00:00:01 |
----------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
3 - access("EMPLOYEE_ID"=107)