We are doing a Database server upgrade from Oracle 9i to Oracle 10g. As a part of this upgrade activity, I got in total three different PL-SQL Errors for which I had to make code changes in the database server.
These errors were:
(1) PLS-00371: at most one declaration for "string" is permitted.
(2) PLS-00593: default value of parameter "string"
in body must match that of spec.
(3) PLS-00216: NUMBER precision constraint must be in range (1 .. 38)
In Oracle 9i Database server version we were not getting these errors.
I wanted to be sure that these errors are because of the version upgrade and there is no other cause. I tried to search on google for PLS-00371 errors. I got instances where other developers have got the same error during migration. But there is no satisfactory explanation which drills down the cause to internals of version upgrade. I understand that PLS-00371 and PLS-00593 are most probably because of PL/SQL compiler change in the Oracle 10g and Oracle 9i version. However, I want to understand what exactly is the change that has caused these errors. It would be very helpful for me if you can explain one or all of these errors as an outcome of version upgrade.