Re: Are PL/SQL variable values runtime only?
Date: Wed, 22 Jul 2009 20:22:13 +0100
Is this what you're after:
Constants and variables are initialized every time a block or subprogram is entered. By default, variables are initialized to NULL. Whether public or private, constants and variables declared in a package spec are initialized only once for each session.
(Taken from the usage notes here: http://download.oracle.com/docs/cd/ B19306_01/appdev.102/b14261/constantvar_declaration.htm#sthref2587)
On 22 Gorff 2009, at 17:28, Rich Jesse wrote:
> Hey all,
> In 10.1.0.5.0, I have a procedure like this:
> CREATE OR REPLACE PROCEDURE bleah AS
> v_test VARCHAR2(50) := my_pkg.my_value('ABC');
> END bleah;
> ...where "my_pkg.my_value" is a function that reads a table and
> returns a
> column value of a row based on the supplied parameter, in this case
> From testing, I can change the column value for row 'ABC' in that
> table (and
> COMMIT) and the above procedure will reflect the change.
> I would have suspected the v_test variable value to be retrieve at
> time, but I suppose that would be a maintenance nightmare since an
> referenced object forces a recompile, right?
> Also the CONSTANT keyword in the variable declaration does not
> appear to
> effect this behavior.
> Is this documented somewhere? I've poked around the PL/SQL User's
> but can't find it.