function_body ::=
 [CREATE [OR_REPLACE]] FUNCTION function_name
 [(parameter_declaration [, parameter_declaration]...)] 
 RETURN datatype
 [AUTHID {CURRENT_USER | DEFINER}] 
 [PARALLEL_ENABLE] [DETERMINISTIC] {IS | AS}
 [{type_definition | item_declaration} 
 [{type_definition | item_declaration}]...] 
 [{function_declaration | procedure_declaration}   
 [{function_declaration | procedure_declaration}]...]
 BEGIN statement [statement]...
 [EXCEPTION exception_handler [exception_handler]...] 
 END [function_name];