I'm using Oracle Application Express version 4.1.1.00.23 if that's relevant.
I've tried this:
DECLARE
l_selected APEX_APPLICATION_GLOBAL.VC_ARR2;
BEGIN
l_selected := APEX_UTIL.STRING_TO_TABLE (:P12_SL_SALES_CHANNEL);
FOR i IN 1 .. l_selected.COUNT
LOOP
INSERT INTO xxapex_aap_data (sales_channel_1))
VALUES (l_selected(i));
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
RAISE_APPLICATION_ERROR (-20000, SQLERRM);
END;
And I always end up with only the last value from the list inserted into the table.