This content has been marked as final. Show 4 replies
Do you happen to have two databases that mirror one another, one for production and the other for testing? If so, compare the tnsnames.ora file on the app server with the one on your PC. Make sure you don't have two different files. You may be logging on a database that doesn't have the procedure. Also check your on-logon trigger to see if there is an IF statement that is pointing to a different database.
If you don't have two databases, then try recompiling the form on the UNIX machine using the Compile PLSQL -> All option.
Message was edited by:
Having just upgraded from forms 9i to 10g we are having exactly the same problem as begenwald.
Did you ever find a solution?
I can confirm that the code is definately connecting to the correct database and executing a package that DOES exist, so this is not a tnsnames issue or anything to do with the wrong database being used.
If the strored package procedure being called from the form takes a record structure as a parameter then the "ORA-04067: not execute, stored procedure "PUBLIC." does not exist" error is raised, however, if I change the parameter to a simple scalar parameter e.g. a varchar2 then the error does not occur.
This appears to be due to a bug in forms10g on unix.
Any pointers would be appreciated as this is driving me mad, not to mention wasting a lot of my time.
I am using Oracle Developer 10 Release1. I tried to use a procedure which takes PL/SQL tables as arguments anf does FOR ALL. It failed. In my case the table was remote and I used DB link.
Thanks and Regards,
Looks like bug #5123798. For more info, see MetaLink Note #5123798.8. Here are the work-arounds listed in that note:
1) Use server-side PL/SQL rather than calling from client->server.
2) Do not use late RPC name binding .
3) Use a 32-bit client platform.