Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Meter data en un arreglo

Estas en el tema de Meter data en un arreglo en el foro de Oracle en Foros del Web. Buenas muchachos. Estoy haciendo un SP que ejecute otros 2 SPs; para lo cual necesito meter unos valores de un select a un arreglo. La ...
  #1 (permalink)  
Antiguo 24/05/2016, 12:15
Avatar de Doglas  
Fecha de Ingreso: mayo-2015
Mensajes: 22
Antigüedad: 9 años, 7 meses
Puntos: 0
Meter data en un arreglo

Buenas muchachos.
Estoy haciendo un SP que ejecute otros 2 SPs; para lo cual necesito meter unos valores de un select a un arreglo. La pregunta es, como lo hago?

Código SQL:
Ver original
  1. DECLARE
  2. as_c_dia NUMBER;
  3. as_c_fecha_actual varchar2(10);
  4. as_c_mes CHAR(2);
  5. as_c_anho CHAR(4);
  6. as_c_fecha_d DATE;
  7. as_c_fecha_s varchar2(10);
  8. --aca declaro el arreglo
  9. TYPE gruposarray IS VARRAY(7) OF VARCHAR2(2);
  10. grupos gruposarray;
  11.  
  12. cant NUMBER;
  13. cant1 CHAR(2);
  14. BEGIN
  15.   SELECT TRIM(to_char(EXTRACT(MONTH FROM sysdate),'00')) INTO as_c_mes FROM dual;
  16.   SELECT TRIM(EXTRACT(YEAR FROM sysdate)) INTO as_c_anho FROM dual;
  17.   as_c_fecha_d := to_Date('01/'||as_c_mes||'/'||as_c_anho,'dd/mm/yyyy');
  18.   SELECT (trunc(sysdate) - as_c_fecha_d + 1) INTO as_c_dia FROM dual;
  19.   dbms_output.put_line(as_c_dia);
  20.   FOR i IN 1..as_c_dia loop
  21.     as_c_fecha_s := TRIM(to_char(i,'00')||'/'||as_c_mes||'/'||as_c_anho);
  22.     dbms_output.put_line(as_c_fecha_s);
  23.     sigarp.usp_09_genera_asist_dia_borra('01',as_c_fecha_s,0000000000,9999999999);
  24.   END loop;
  25.   --aca saco la cantidad de valores
  26.   SELECT COUNT(*) INTO cant FROM sigarp.grupo_planilla WHERE c_st_situacion = '1';
  27.   --aca saco los valores
  28.   SELECT c_c_grupo INTO cant1 FROM sigarp.grupo_planilla WHERE c_st_situacion = '1';
  29.   FOR i IN 1..cant loop
  30.     dbms_output.put_line(cant1);
  31.   END loop;
  32.   --y aca trado de asiganar valores al arreglo
  33.   --for i in 1..grupos.count loop
  34. --    dbms_output.put_line(to_char(i));
  35.       grupos:=gruposarray(1,2,3,4,5,6);
  36.       cant := grupos.COUNT;
  37.       dbms_output.put_line(to_char(cant));
  38. --    grupos[i] :=
  39.   --end loop;
  40. END;

Última edición por Doglas; 24/05/2016 a las 13:58
  #2 (permalink)  
Antiguo 25/05/2016, 08:00
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: Meter data en un arreglo

Con un FOR lo puedes hacer de la siguiente forma:

Código SQL:
Ver original
  1. FOR cur IN (SELECT campo1,campo2 FROM tabla) LOOP
  2.       DBMS_OUTPUT.PUT_LINE('campo1: '||cur.campo1);
  3.       DBMS_OUTPUT.PUT_LINE('campo2: '||cur.campo2);
  4. END LOOP;
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: arreglo, data, meter
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:12.