The expanded parameters of local-variable identify program variables declared in a compound statement.
Expansion of local-variable
►─────────┬──────────────────────┬── local-variable-name ─────────────────────►◄ └── cmp-stmnt-label. ──┘
Parameters
Specifies the label of the compound statement that contains the definition of local-variable.
Identifies the local variable of an SQL routine.
Referencing Local Variables
A local variable can only be referenced from within the compound statement that contains its declaration or from within a compound statement contained in the compound statement that contains its declaration.
Avoiding Ambiguous References
The name of a local variable of an SQL routine can be the same as the name of another local variable, a routine parameter, a column, or another schema-defined entity such as a table. To avoid ambiguity when referencing these objects, qualification can be used as follows:
Resolving Ambiguous References
If a name is not qualified and more than one object has the specified name, CA IDMS uses the following precedence rules to resolve the ambiguous reference:
Note: For more information about how such a reference is resolved, see Resolving References to Entities in Schemas.
In the SQL standard, an unqualified reference would be to the object with innermost scope.
In the following SQL procedure, two local variables, FNAME and LNAME are defined. The references are qualified in the SELECT statement with the label of the compound statement that holds the definition of the local variables. The SET statement uses unqualified references.
set options command delimiter '++';
create procedure SQLROUT.LOCALVAR
( TITLE varchar(10) with default
, P_EMP_ID NUMERIC(4)
, P_NAME varchar(25)
)
external name LOCALVAR language SQL
L_MAIN: begin not atomic
/*
** Count number of employees with equal Firstname using REPEAT
*/
declare FNAME char(20);
declare LNAME varchar(20);
select EMP_FNAME, EMP_LNAME
into L_MAIN.FNAME, L_MAIN.LNAME
from DEMOEMPL.EMPLOYEE
where EMP_ID = P_EMP_ID;
set P_NAME = FNAME || LNAME;
end L_MAIN
++
*+ TITLE P_EMP_ID P_NAME
call SQLROUT.LOCALVAR('LOCALVAR',2010)++
*+
*+ ----- -------- -------------
*+ LOCALVAR 2010 Cora Parke
|
Copyright © 2014 CA.
All rights reserved.
|
|