CREATE [ OR REPLACE ] FUNCTION [ schema. ] function
[ ( argument [ IN | OUT | IN OUT ] [ NOCOPY ] datatype
[, argument [ IN | OUT | IN OUT ] [ NOCOPY ] datatype
]...
)
]
RETURN datatype
[ { invoker_rights_clause
| DETERMINISTIC
| parallel_enable_clause
}...
]
{ { AGGREGATE | PIPELINED }
USING [ schema. ] implementation_type
| [ PIPELINED ] { IS | AS } { pl/sql_function_body | call_spec }
} ;