Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: PL/SQL Function Calls
Mladen Gogala wrote:
> Oracle's procedures are "compiled" and stored in the database in their
> "compiled" form. Oracle determines execution path as a part of compilation.
> How would Oracle determine execution path if not all elements are known?
> That is the answer to your question.
Not really correct as it is only one side of the coin.
Correct in that stored code has run-time dependancies. Changing those objects that are dependant on at run-time, invalidates the actual code itself. Typical example is a package that uses a view, but also attempts to re-create the view under certain conditions. As soon as that view is re-created, the package invalidates itself.
There is however a RTTI (Run-Time Type Information) interface in Oracle for PL/SQL - the data dictionary. It tells you the name of the object (proc/func) and its parameters and the parameter types.
There is also DBMS_SQL and EXECUTE IMMEDIATE for dynamically creating code for execution during run-time.
On the SQL side there is the weak cursor type.
All these allows you to create a dispatch interface where Oracle does not know at compilation time the execution path, nor the caller at run-time. I.e. a complete abstract call interface as you will find in other languages when dealing with RTTI and dispatchers.
-- BillyReceived on Tue Jun 07 2005 - 01:26:17 CDT