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 } [ invoker_rights_clause | DETERMINISTIC | parallel_enable_clause ]... ] { { AGGREGATE | PIPELINED } USING [ schema. ]implementation_type | [ PIPELINED ] { IS | AS } { pl/sql_function_body | call_spec } } ;