You will face this error while
connecting to a database which has word size (32-bit or 64-bit) different than
the actual installation binaries (32-bit or 64-bit). It means that if database
was created (and running) on a 64-bit platform and then you move/restore same
database to a 32-bit platform, or vice versa, you will be facing this problem.
You may also face this error if you have
a standby database running on a platform which has Oracle binaries different
than the binaries of primary database platform, and you perform a switchover.
After the switchover, you might be facing same error.
Reason of this error is that PL/SQL
objects (functions, procedures, packages) were compiled using a different word
size (suppose 32-bit) when database was created/running, and now you restore/move
this database to a 64-bit platform and hence these objects code is inconsistent
with the binaries.
To solve this problem, you first need to
invalidate all PL/SQL objects and then re-compile them so that new compiled
code becomes consistent with the available binaries.
1. Startup
database with STARTUP UPGRADE option
2. Invalidate
the PL/SQL objects by running $ORACLE_HOME/rdbms/admin/utlip.sql
3. Validate
the PL/SQL objects by running $ORACLE_HOME/rdbms/utlrp.sql
4. Shutdown
the database
5. Startup
the database
No comments:
Post a Comment