SQL> SQL> SQL> declare 2 a NUMBER:=2; 3 b NUMBER:=3; 4 v_plsql_tx VARCHAR2(2000); 5 begin 6 v_plsql_tx := 'BEGIN ' || ' :1 := :1 + :2; ' || 'END;'; 7 execute immediate v_plsql_tx 8 using in out a, b; 9 DBMS_OUTPUT.put_line('a='||a); 10 end; 11 / a=5 PL/SQL procedure successfully completed.
In dynamic PL/SQL blocks, Oracle counts only unique bind variables and associates them with arguments in the order of their appearance.