2015-11-25 1 views
2

Если PLAN_TABLE создается автоматически отправлять Oracle 9i, то почему я получаюведение таблицы плана в оракула

«Таблица или представление не существует»

, пытаясь объяснить план. Я использую oracle 11.1. Я вошел в систему с учетной записью владельца схемы.

+0

'select * from ALL_synonyms где synonym_name = 'PLAN_TABLE'', если вы не видите никаких результатов, у вас нет прав доступа к таблице. и даже если вы видите результаты, если ваша схема или публикация не указаны в списке, у вас все еще нет доступа. – xQbert

+0

См. [** Почему PLAN_TABLE не существует **] (http://lalitkumarb.com/tag/plan-table-does-not-exist/). –

ответ

2

Почему я не получаю «Таблица или представление не существует» при попытке объяснить план.

Есть две возможности:

  • USER вы вошли в систему, не имеет привилегию на PLAN_TABLE.

  • PLAN_TABLE на самом деле не существует.

Если вы могли бы получить пункт 1 фиксированный, то хорошо и хорошо.

Если plan table doesn't exist, то вы можете создать свой собственный PLAN_TABLE, выполнив Oracle при условии сценария utlxplan.sql (при условии, что пользователь имеет создать таблицу привилегий):

Connected to: 
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production 
With the Partitioning and Automatic Storage Management options 

SQL> @?/rdbms/admin/utlxplan.sql 

Table created. 

SQL> DESC PLAN_TABLE; 
Name          Null? Type 
----------------------------------------- -------- ---------------------------- 

STATEMENT_ID          VARCHAR2(30) 
PLAN_ID           NUMBER 
TIMESTAMP           DATE 
REMARKS           VARCHAR2(4000) 
OPERATION           VARCHAR2(30) 
OPTIONS           VARCHAR2(255) 
OBJECT_NODE          VARCHAR2(128) 
OBJECT_OWNER          VARCHAR2(30) 
OBJECT_NAME          VARCHAR2(30) 
OBJECT_ALIAS          VARCHAR2(65) 
OBJECT_INSTANCE         NUMBER(38) 
OBJECT_TYPE          VARCHAR2(30) 
OPTIMIZER           VARCHAR2(255) 
SEARCH_COLUMNS          NUMBER 
ID             NUMBER(38) 
PARENT_ID           NUMBER(38) 
DEPTH            NUMBER(38) 
POSITION           NUMBER(38) 
COST            NUMBER(38) 
CARDINALITY          NUMBER(38) 
BYTES            NUMBER(38) 
OTHER_TAG           VARCHAR2(255) 
PARTITION_START         VARCHAR2(255) 
PARTITION_STOP          VARCHAR2(255) 
PARTITION_ID          NUMBER(38) 
OTHER            LONG 
OTHER_XML           CLOB 
DISTRIBUTION          VARCHAR2(30) 
CPU_COST           NUMBER(38) 
IO_COST           NUMBER(38) 
TEMP_SPACE           NUMBER(38) 
ACCESS_PREDICATES         VARCHAR2(4000) 
FILTER_PREDICATES         VARCHAR2(4000) 
PROJECTION           VARCHAR2(4000) 
TIME            NUMBER(38) 
QBLOCK_NAME          VARCHAR2(30) 

Если все не удается, обратитесь к своему DBA ,

+0

Спасибо за быстрый ответ. Я знаю этот сценарий, но имею сомнение. Будет ли эта работа такой же, как plan_table в oracle? или мне нужно позаботиться о дополнительных вещах в моих запросах или параметрах? – Nitesh

+0

@Nitesh. ** Oracle предоставил скрипт **, который создает «PLAN_TABLE» при установке Oracle и создании базы данных в первый раз или когда вы хотите создать PLAN_TABLE как стандартный способ в Oracle. –