Recompile a schema which does not belong to you.

I ran across an error when I configured the OWB.
This error caused me not to connect control center of OWB.
I decide to recompile a achema.
The way you can use even you do not know the password.

The solution is to use the dbms_utility package as a DBA user.

Example, if you want to recompile all procedures,functions, packages and triggers belonging to scott
here is how to do it:
<!-- ccccccccccccccccccccccccccccccccccccccccccccccccc -->

SQL> exec dbms_utility.compile_schema(schema=>'SCOTT');
PL/SQL procedure successfully completed.


<!-- ccccccccccccccccccccccccccccccccccccccccccccccccc -->

If you only want to recompile all invalid options, execute it like this : <!-- ccccccccccccccccccccccccccccccccccccccccccccccccc -->

SQL> exec dbms_utility.compile_schema(schema=>'SCOTT',compile_all=>false);
PL/SQL procedure successfully completed.


<!-- ccccccccccccccccccccccccccccccccccccccccccccccccc -->

If you want to use each object's session settings instead of the calling user's settings: <!-- ccccccccccccccccccccccccccccccccccccccccccccccccc -->

SQL> exec dbms_utility.compile_schema(schema=>'SCOTT',compile_all=>false, reuse_settings=>true);
PL/SQL procedure successfully completed.


<!-- ccccccccccccccccccccccccccccccccccccccccccccccccc -->

To see if any errors were generated
(you must run this command immediately after executing dbms_utility) : <!-- ccccccccccccccccccccccccccccccccccccccccccccccccc -->

SQL> show errors
No errors.


<!-- ccccccccccccccccccccccccccccccccccccccccccccccccc -->

Another way to see if the compilations were successful : <!-- ccccccccccccccccccccccccccccccccccccccccccccccccc -->

SQL> select object_name, object_type from dba_objects where owner = 'SCOTT' and status = 'INVALID';
no rows selected

你可能感兴趣的:(compile)