Note: this is not a question related to PLD, but to the PL/SQL compiler in general. I was thinking since we have some many experienced developers in here, I might get a qualified answer.
So sorry in advance, if this will be regarded as spam.
Here goes:
I have a package PAY with method MY_BILL.
In the same schema, I also have a package MY_BILL with a method named MUST_BE_PAYED (so both a package and a packaged method with the same name, in same schema).
My problem is that I can not call method MY_BILL.MUST_BE_PAYED from within package PAY, as the compiler gives error: PLS-00302: component 'MUST_BE_PAYED' must be declared
The compiler wrongly assumes that MY_BILL is a reference to the method PAY.MY_BILL and not the package method MY_BILL.MUST_BE_PAYED
I know I can force references to e.g. a method variable by prefixing the variable with the method name, but how can I force the compiler to interpret a name as a package name (other than giving either the package or the method different names)? I do not want to prefix the package name with schema name, as our code must be transferable between schemas without changes in code