var my_action VARCHAR2(30);
exec :my_action:='bulk insert';

@login
select sysdate from dual;

exec DBMS_APPLICATION_INFO.SET_ACTION (action_name => :my_action); 
DECLARE
    -- Configuration
    v_start_val INTEGER := 20000000;
    v_count     INTEGER := 10000000;

    -- Define the collection type
    TYPE t_int_tab IS TABLE OF INTEGER INDEX BY PLS_INTEGER;
    v_numbers t_int_tab;
BEGIN
    -- 1. Manual Loop to populate the variable
    -- This replaces the "BULK COLLECT" step with procedural logic
    FOR i IN 1 .. v_count LOOP
        v_numbers(i) := v_start_val + (i - 1);
    END LOOP;
    FORALL i IN 1..v_numbers.COUNT INSERT INTO SAMPLE.RANDOM_DATA_LOAD VALUES(v_numbers(i),'bulk insert',sysdate);
    commit;
END;
/

select sysdate from dual;

