ORA-04062 Signature mismatch - how small can the mismatch be?
We have a form which threw an ORA-04062 error when it was released to the Live DB. It happens when If there is a difference between the timestamps or signatures of PL/SQL packages on two databases and the form is compiled against one database and run against another. The solution is to recompile against the other database, then the form will run.
Diagnosing the source of the problem is more difficult. There are several packages which are possibly mismatched, but they are all called when changes are saved to the database. We can't test this out against the LIVE database as we can't update live data. We can't diagnose against the TEST database because the problem doesn't occur on the test database. Obviously, we can recompile all the packages on the TEST db using source code taken from LIVE, but that still doesn't tell us where the problem was. There are dozens of legitimate differences between the the two databases, so comparing them to find the one that's going to cause an ORA-04062 is going to take some time.
However, I have already found two very small mismatches in the first two packages I checked and I wondered it it was enough to throw the ORA-04062.
One database has the code
Create or replace package PKG01
and the other has the code
Create or replace package "PKG01"
The only difference is the package name is enclosed (or not enclosed) in double quotes
Q1. Would this be enough to cause the ORA-04062 signature error?
Q2. Can a signature error be caused by a different set of patches being applied on the two DBs? The SYS packages are all identical
Any other tips welcome,
Thanks, Martin