Variable scope
The parts of a program in which a particular variable can be referenced (that is, its value used or a new value assigned) is called the scope of the variable. In EPL, variables can have scopes that include
All monitors — these are global variables that are part of EPL, also called predefined variables.
The monitor within which they are declared.
The action within which they are declared.
The block within which they are declared.
The event within which they are declared.
The custom aggregate function in which they are declared.
The stream query within which they are identified.
Regardless of the scope of a variable, it cannot be referenced in statements or expressions until after it has been declared or specified as an item identifier in a stream query. Further, variables scoped to actions or blocks cannot be referenced until a value has been assigned.
Within a scope at a particular level, variables declared at that level must have unique names. They can, however, have names that are the same as variables defined at an outer scope and in that case the variables declared at the inner level hide or mask the ones defined at the outer level(s) until the end of their scope.