Positional, named or mixed-notations are allowed in calls to functions / procedures. Prior to Oracle 11g only positional notation was supported from the SQL statements. From 11g named and mixed notations are supported.
If there are too many default values then we have been given values to them as well earlier – but, from now on they can be skipped and can give only the required values.
CREATE OR REPLACE function
mixed_notation (in_param1 IN NUMBER DEFAULT 10, in_param2 IN NUMBER DEFAULT 12)
v_value := in_param1 * in_param2;
SQL> select mixed_notation(10, 12) from dual;
SQL> select mixed_notation() from dual;
SQL> select mixed_notation(in_param1=>6) from dual;
Mix it up !!