PL/SQL inclut une base pour les listes séparées par des virgules (DBMS_UTILITY.COMMA_TO_TABLE
).
Exemple :
DECLARE
lv_tab_length BINARY_INTEGER;
lt_array DBMS_UTILITY.lname_array;
BEGIN
DBMS_UTILITY.COMMA_TO_TABLE( list => 'one,two,three,four'
, tablen => lv_tab_length
, tab => lt_array
);
DBMS_OUTPUT.PUT_LINE( 'lv_tab_length = ['||lv_tab_length||']' );
FOR i IN 1..lv_tab_length
LOOP
DBMS_OUTPUT.PUT_LINE( '['||lt_array( i )||']' );
END LOOP;
END;
/
Ou consultez ce lien Ask Tom pour d'autres idées...
Ak Tom - "éléments variables dans la liste IN"