the outline error why [message #189544] |
Fri, 25 August 2006 01:25 |
lazycat
Messages: 57 Registered: November 2005
|
Member |
|
|
when i want to use the outline
i found some err
when
SQL> exec dbms_outln_edit.CREATE_EDIT_TABLES;
PL/SQL procedure successfully completed.
SQL> CREATE PRIVATE OUTLINE p_ol1 FROM ol1;
CREATE PRIVATE OUTLINE p_ol1 FROM ol1
*
ERROR at line 1:
ORA-18011: the outline specified in the FROM clause does not exist
who can tell me
what's wrong
|
|
|
|
Re: the outline error why [message #189579 is a reply to message #189576] |
Fri, 25 August 2006 03:00 |
lazycat
Messages: 57 Registered: November 2005
|
Member |
|
|
Connect to a schema from which the outlined statement can be executed, and ensure that the CREATE ANY OUTLINE and SELECT privileges have been granted.
Create outline editing tables locally with the DBMS_OUTLN_EDIT.CREATE_EDIT_TABLES procedure.
Clone the outline being edited to the private area using the following:
CREATE PRIVATE OUTLINE p_ol1 FROM ol1;
Edit the outline, either with the Outline Editor in Enterprise Manager or manually by querying the local OL$HINTS tables and performing DML against the appropriate hint tuples. DBMS_OUTLN_EDIT.CHANGE_JOIN_POS is available for changing join order.
If manually editing the outline, then resynchronize the stored outline definition using the following so-called identity statement:
CREATE PRIVATE OUTLINE p_ol1 FROM PRIVATE p_ol1;
You can also use DBMS_OUTLN_EDIT.REFRESH_PRIVATE_OUTLINE or ALTER SYSTEM FLUSH SHARED_POOL to accomplish this.
Test the edits. Set USE_PRIVATE_OUTLINES=TRUE, and issue the outline statement or run EXPLAIN PLAN on the statement.
If you want to preserve these edits for public use, then publicize the edits with the following statement.
CREATE OR REPLACE OUTLINE ol1 FROM PRIVATE p_ol1;
Disable private outline usage by setting the following:
USE_PRIVATE_OUTLINES=FALSE
|
|
|
|