Oracle Synonyms issue
One way to get around this limitation, assuming you really need to call the procedure with a single name (for whatever reason), you could wrap it in a schema-level procedure:
CREATE PROCEDURE schema1.proc1 ISBEGIN pkg_system.proc1;END;CREATE PUBLIC SYNONYM proc1 FOR schema1.proc1;
Note here
Restriction on the FOR ClauseThe schema object cannot be contained in a package.
In other words, you can't create a synonym for a package procedure.
I've seen solutions where a wrapper procedure (non packaged) is created and a public synonym created for that.