AƱadir elementos a una lista a partir de una consulta
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.
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.
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;
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;
