plsql_block ::= [ << label_name >> ] [ DECLARE ] [ { type_definition | item_definition } [ type_definition | item_definition ] ... ] [ {function_declaration | procedure_declaration } [ function_declaration | procedure_declaration] ... ] BEGIN statement [statement ...] [ EXCEPTION exception_handler [exception_handler ...] ] END [ label_name ] ; type_definition ::= { record_type_definition | ref_cursor_type_definition | table_type_definition | subtype_definition | varray_type_definition } subtype_definition ::= subtype_definition ::= SUBTYPE subtype_name IS base_type [ (constraint) ] [ NOT NULL ];