Creating a Subprocedure v13
The PROCEDURE
clause specified in the declaration section defines and names a subprocedure local to that block.
The term block refers to the SPL block structure consisting of an optional declaration section, a mandatory executable section, and an optional exception section. Blocks are the structures for standalone procedures and functions, anonymous blocks, subprograms, triggers, packages, and object type methods.
The phrase the identifier is local to the block means that the identifier (that is, a variable, cursor, type, or subprogram) is declared within the declaration section of that block and is therefore accessible by the SPL code within the executable section and optional exception section of that block.
Subprocedures can only be declared after all other variable, cursor, and type declarations included in the declaration section. (That is, subprograms must be the last set of declarations.)
Where:
name
name
is the identifier of the subprocedure.
parameters
parameters
is a list of formal parameters.
PRAGMA AUTONOMOUS_TRANSACTION
PRAGMA AUTONOMOUS_TRANSACTION
is the directive that sets the subprocedure as an autonomous transaction.
declarations
declarations
are variable, cursor, type, or subprogram declarations. If subprogram declarations are included, they must be declared after all other variable, cursor, and type declarations.
statements
statements
are SPL program statements (the BEGIN - END
block may contain an EXCEPTION
section).
Examples
The following example is a subprocedure within an anonymous block.
Invoking this anonymous block produces the following output:
The following example is a subprocedure within a trigger.
Invoking this trigger produces the following output: