Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/05/2016, 12:15
Avatar de Doglas
Doglas
 
Fecha de Ingreso: mayo-2015
Mensajes: 22
Antigüedad: 9 años
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