package_body ::= CREATE [OR_REPLACE] PACKAGE_BODY [schema_name .] package_name {IS | AS} [PRAGMA SERIALLY_REUSABLE;] {collection_type_definition | record_type_definition | subtype_definition | collection_declaration | constant_declaration | exception_declaration | object_declaration | record_declaration | variable_declaration | cursor_body | function_body | procedure_body | call spec} [{collection_type_definition | record_type_definition | subtype_definition | collection_declaration | constant_declaration | exception_declaration | object_declaration | record_declaration | variable_declaration | cursor_body | function_body | procedure_body | call spec}]... [BEGIN statement [statement]...] END [package_name];