Arreglos de discos

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
  

Notael Mié, 22 Sep 2004 10:27 am

Estoy teniendo problemas manejo de arreglos de discos, lo que necesito é almacenar cadenas en la matriz para buscar más adelante para el valor del índice y pasar una consulta sql aquí el código
Código: Seleccionar todo
begin
   declare
      L_CDUSUA  CHAR(20)   := LTRIM('mrg');
      L_CDEMP   CHAR(2)    := '01';
      L_CDFIL   CHAR(4)    := '0002';
      L_MES     CHAR(2)    := '07';
      L_ANO     CHAR(4)    := '2004';
     
-- CRIA UM ARRAY COM ÍNDICES PARA TRABALHAR COM OS 7 VALORES POSSÍVEIS NAS DATAS NECESSÁRIAS

     TYPE CAMPOSTAB IS TABLE OF VARCHAR2(50) index by Binary_Integer;
     P1 CAMPOSTAB;
     J NUMBER(1) := 1;


-- ------------------------------Valores representativos dos Índices do Array
--******** 1 = Volumes(Cab)
--******** 2 = Volumes Kg
--******** 3 = Peso Médio
--******** 4 = Faturamento R$
--******** 5 = Faturamento Cab
--******** 6 = Quilos Equivalentes
--******** 7 = Preço Médio
-- --------------------------------------------------------------------------

EXCEPT_ERR  EXCEPTION;
 
BEGIN
   
   P1(1) := 'CPDITS.QTPRO';
   P1(2) := 'CPDITS.PSPRO';
   P1(3) := 'CPDITS.VLUNITPRO';
   
-- LOOP PARA PASSAR POR TODOS OS P1 ARMAZENADOS NO ARRAY
WHILE J <= 3 LOOP

-- Loop para valores no mês corrente   
   FOR CARGA IN(
     
    SELECT
        -- SELECIONA O CAMPO PASSADO NO ARRAY E O IDENTIFICADOR QUE É IGUAL AO ÍNDICE DO ARRAY
         (ADFSTPTIT.CDSTPTIT) CDSTPTIT, (MIN(ADFSTPTIT.DESTPTIT)) DESTPTIT,
         (SUM(P1(J))) VLMES, (MAX(J)) IDTPINF
      FROM
         CADPRO,
         CPDITS,
         CPDNFS,
         CPDVTS,
         ADFSTPTIT
      WHERE
         CADPRO.CDPRO = CPDITS.CDPRO AND
         CPDITS.CDEMP = CPDNFS.CDEMP AND
         CPDITS.CDFIL = CPDNFS.CDFIL AND
         CPDITS.NUDOC = CPDNFS.NUDOC AND
         CPDITS.CDSERIE = CPDNFS.CDSERIE AND
         CPDITS.CDSUBSERIE = CPDNFS.CDSUBSERIE AND
         CPDNFS.CDEMP = CPDVTS.CDEMP AND
         CPDNFS.CDFIL = CPDVTS.CDFIL AND
         CPDNFS.NUDOC = CPDVTS.NUDOC AND
         CPDNFS.CDSERIE = CPDVTS.CDSERIE AND
         CPDNFS.CDSUBSERIE = CPDVTS.CDSUBSERIE AND
         CPDVTS.CDEMP = ADFSTPTIT.CDEMP AND
         CPDVTS.CDFIL = ADFSTPTIT.CDFIL AND
         CPDVTS.CDTPTIT = ADFSTPTIT.CDTPTIT AND
         CPDVTS.CDSTPTIT = ADFSTPTIT.CDSTPTIT AND
       CADPRO.CDPRO IN (SELECT CDPRO FROM CADPRO WHERE TPESTRUT = '11' AND CDESTRUT LIKE '1%') AND
         CPDNFS.DTEMI = TO_DATE(L_MES||'/'||L_ANO,'MM/YYYY') AND
        ADFSTPTIT.CDEMP = L_CDEMP AND
        ADFSTPTIT.CDFIL = L_CDFIL
     GROUP  BY ADFSTPTIT.CDSTPTIT) LOOP
         
       -- INSERE RESULTADO DA VIEW EXPLÍCITA NA TABELA MTRZ221
       
        INSERT INTO MTRZ221 (CDSTPTIT, DESTPTIT, IDTPINF, VLMES, CDUSUA, CDEMP, CDFIL)
        VALUES(CARGA.CDSTPTIT, CARGA.DESTPTIT, CARGA.IDTPINF, CARGA.VLMES, L_CDUSUA, L_CDEMP, L_CDFIL);
    
     END LOOP;
    
     COMMIT;
   

commit;
EXCEPTION
when others then
    rollback;
    raise;
  END;
END;

si alguien me puede dar un Consejo aí que agradezco, tenter trabajo pero dio muito VARRAY também derecha, como si el contenido no se carga!


Gracias... abrazos
MuLtAnI
Ubicación: Videira - SC


Notael Mié, 22 Sep 2004 4:03 pm

OLA Multani ver si eso no ayuda: http://glufke.net/oracle/viewtopic.php?t=61 [] s
dr_gori
Ubicación: Portland, OR USA

Thomas F. G

Você já respondeu a dúvida de alguém hoje?
http://glufke.net/oracle/search.php?search_id=unanswered

Notael Mié, 22 Sep 2004 4:12 pm

No agrega realidad, lo que pasa es lo siguiente, si uso para el arreglo de discos para almacenar valores de tipo de columna de tabla por ejemplo con tabla. % tipo de columna todavía no podía hacer lo que necesito, porque necesito pasar el valor contenido en el índice de matriz a la instrucción select lo que no funciona porque mi matriz é de tipo VARCHAR2 y así que sería llevar una cadena y no los valores contenidos en una tabla.

Gracias por la ayuda!!!

[de]
MuLtAnI
Ubicación: Videira - SC



  • See also
    Replies
    Views
    Last Post


Volver a PL/SQL

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 16 invitados