procedure_body ::= [CREATE [OR_REPLACE]] PROCEDURE procedure_name [(parameter_declaration [, parameter_declaration]...)] [AUTHID {CURRENT_USER | DEFINER}] {IS | AS} [PRAGMA AUTONOMOUS_TRANSACTION;] [{type_definition | item_declaration} [{type_definition | item_declaration}]...] [{function_declaration | procedure_declaration} [{function_declaration | procedure_declaration}]...] BEGIN statement [statement]... [EXCEPTION exception_handler [exception_handler]...] END [procedure_name];