FUNCTION name [ ( parameter_declaration [, parameter_declaration ]... ) ] RETURN datatype [ { invoker_rights_clause | accessible_by_clause | DETERMINISTIC | parallel_enable_cl_in_type | RESULT_CACHE [ relies_on_clause ] }... [ PIPELINED ] { IS | AS } { [ declare_section ] body | call_spec }