package_body ::=
 [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];