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];