Prueba esto.....
Ejemplo.
control --> lista desplegable
crea_lista('bloque.lista','SELECT to_char(codigoX) numero, initcap(nombreX) nombre from tablaX');
---
PROCEDURE Crea_lista(campop in varchar2,tabla in varchar2) IS
rg_nombre VARCHAR2(40):='lista';
rg_id RecordGroup;
lista_id item;
nom_lista VARCHAR2(50):=campop;
consulta varchar2(100):=tabla;
query_ok NUMBER;
row_count NUMBER;
campo NUMBER;
i NUMBER;
BEGIN
rg_id := Find_Group( rg_nombre );
if not Id_null(rg_id) then
delete_group(rg_id);
end if;
rg_id := Create_Group_From_Query( rg_nombre, consulta);
query_ok := Populate_Group_with_query(rg_nombre,consulta);
row_count := Get_Group_Row_Count(rg_id);
lista_id := Find_item( nom_lista );
clear_list(lista_id);
FOR j IN 1..row_count LOOP
add_list_element(nom_lista,j,
get_group_char_cell('lista.nombre',j),
get_group_char_cell('lista.numero',j));
END LOOP;
END;