Añadir elementos a una lista a partir de una consulta

Juan
22 de Junio del 2006
Bueno, pues quería, por favor, que me ayuden para poder hacer esto.
Quiero hacer una consulta, y los resultados de esa consulta, quiero introducirlos en un elemento de lista.
Supongo que es con el built-in ADD_LIST_ELEMENT, pero, si la consulta me saca más de 1 registro...como puedo coger cada uno de esos registros(individualmente) e introducirlos en la lista? no se si me he explicado bien...espero que puedan ayudarme, muchas gracias por vuestro tiempo.

CAR2004
22 de Junio del 2006
Facil,
tienes que hacer un cursor y recorres registro a registro. Te pongo un ejemplo para que lo veas.

PROCEDURE CARGA_CCAA IS

INDICE NUMBER:=0;
CD_P CHARACTER(3);
DS_P CHARACTER(2000);
PRIMER_REG CHARACTER(3);

CURSOR C1 IS
SELECT CD_CCAA, DESCRIPCION_CCAA FROM T_CCAA
ORDER BY DESCRIPCION_CCAA;

BEGIN
CLEAR_LIST(\'L_CCAA\');
:OTROS.L_CCAA := NULL;
OPEN C1;
LOOP
FETCH C1 INTO CD_P, DS_P;

-- MESSAGE(\'CD_P: \' || CD_P);

EXIT WHEN C1%NOTFOUND;
INDICE := INDICE + 1;
ADD_LIST_ELEMENT(\'OTROS.L_CCAA\',INDICE, TRIM(DS_P), TO_NUMBER(CD_P));

IF INDICE = 1 THEN
PRIMER_REG := CD_P;
END IF;

END LOOP;

CLOSE C1;
-- NO SE POSICIONA
-- :OTROS.COMBO_PROVINCIAS := PRIMER_REG;

EXCEPTION
WHEN NO_DATA_FOUND THEN
ADD_LIST_ELEMENT(\'OTROS.L_CCAA\',1,\'SIN DATOS\',-1);

END;