Procedure Declaration and Definition

A procedure is a subprogram that performs a specific action. A procedure invocation (or call) is a statement.

Before invoking a procedure, you must declare and define it. You can either declare it first (with procedure_declaration) and then define it later in the same block, subprogram, or package (with procedure_definition) or declare and define it at the same time (with procedure_definition).

A procedure declaration is also called a procedure specification or procedure spec.


This topic applies to nested procedures. For information about standalone procedures, see "CREATE PROCEDURE Statement". For information about package procedures, see "CREATE PACKAGE Statement".




Declares a procedure, but does not define it. The definition must appear later in the same block, subprogram, or package as the declaration.



Name of the procedure that you are declaring or defining.


Either defines a procedure that was declared earlier or both declares and defines a procedure.


Declares items that are local to the procedure, can be referenced in body, and cease to exist when the procedure completes execution.


Required executable part and optional exception-handling part of the procedure.

call_spec, EXTERNAL

See"call_spec" and "EXTERNAL".

Restriction on call_spec, EXTERNAL These clauses can appear only in a package specification or package body.