== Why is this an issue? For better readability, and to prevent the ``++PLS-00312: a positional parameter association may not follow a named association++`` exception from being raised, do not mix named and positional argument invocations. === Noncompliant code example [source,sql] ---- SET SERVEROUTPUT ON DECLARE PROCEDURE sub(op1 PLS_INTEGER, op2 PLS_INTEGER) AS BEGIN DBMS_OUTPUT.PUT_LINE('Sub = ' || (op1 - op2)); END; BEGIN sub(10, op2 => 2); -- Noncompliant sub(op1 => 10, 2); -- Noncompliant - raises PLS-00312: a positional parameter association may not follow a named association END; / ---- === Compliant solution [source,sql] ---- SET SERVEROUTPUT ON DECLARE PROCEDURE sub(op1 PLS_INTEGER, op2 PLS_INTEGER) AS BEGIN DBMS_OUTPUT.PUT_LINE('Sub = ' || (op1 - op2)); END; BEGIN sub(10, 2); -- Compliant sub(op1 => 10, op2 => 2); -- Compliant END; / ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message Use only named or only positional arguments. endif::env-github,rspecator-view[]