ETL-Help

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
  

Poston Tue, 15 Apr 2008 11:10 am

Guys, I need a help to include some attributes in the ETL update procedures. Are they-dt_desativação and cd_grupo_ar.

: Script
Code: Select all
CREATE OR REPLACE PROCEDURE sp_f_ar AS
/*************************************************************
Funcao     : ETL AR
Criado   em : 19/08/2007
Responsavel: Célio Nunes
Notas      :

**************************************************************/
--variaveis
vDT_INICIO            VARCHAR2(50)  := TO_CHAR(SYSDATE,'DD/MM/YYYY HH24:MI:SS');
vLINHAS                  NUMERIC(10,0)   := 0;

--------------------------------------------------------------------------------
BEGIN

--Execute immediate 'truncate table F_AR';
delete from F_AR;
commit work;

INSERT INTO F_AR(cd_estabelecimento,hist_status, hist_dt_ultimo_contato, hist_dt_proximo_contato,
hist_observacao, ds_usuario_ar, sk_tempo, hist_fl_antecipacao)
(SELECT  ar.CD_ESTABELECIMENTO,
        CASE
           WHEN IND_STATUS='NA' then 'NÃO ANTECIPA'
           WHEN IND_STATUS='NP' then 'NÃO PRECISA'
           WHEN IND_STATUS='AC' then 'ANTECIPA (OUTROS CARTOES)'
           WHEN IND_STATUS='TA' then 'TAXA ALTA'
           WHEN IND_STATUS='AG' then 'AGENDADO'
           WHEN IND_STATUS='AT' then 'ANTECIPADO'
           WHEN IND_STATUS='NE' then 'NÃO ESTAVA'
           WHEN IND_STATUS='AL' then 'ACUMULAR LOTES'
           WHEN IND_STATUS='OC' then 'OCUPADO'
           WHEN IND_STATUS='RE' then 'RESPONSAVEL DECISOR não ESTAVA'
           WHEN IND_STATUS='NL' then 'NÃO LIGAR'
           WHEN IND_STATUS='NT' then 'NÃO ATENDE'
           WHEN IND_STATUS='TE' then 'TELEFONE ERRADO'
           WHEN IND_STATUS='EM' then 'EMPRÉSTIMO GIRO FÁCIL'
           WHEN IND_STATUS='AA' then 'ANTECIPAÇÃO AUTOMATICA AAR'
           WHEN IND_STATUS='SL' then 'SEM LOTES'
           WHEN IND_STATUS='PG' then 'PROBLEMAS COM A GOODCARD'
           WHEN IND_STATUS='JC' then 'JÁ CONTATADO NOS ÚLTIMOS TRES DIAS'
           WHEN IND_STATUS='RA' then 'REDE - ANTECIPA'
           WHEN IND_STATUS='RN' then 'REDE - NÃO ANTECIPA'
           ELSE IND_STATUS
      END AS HIST_STATUS,
      trunc(ar.DT_ULTIMO_CONTATO) AS DT_ULTIMO_CONTATO,
      trunc(ar.DT_PROXIMO_CONTATO) AS DT_PROXIMO_CONTATO,
      Upper(ar.OBSERVACAO) AS OBSERVACAO,
      Upper(u.DS_NOME_COMPLETO) as DS_USUARIO_AR,
      -1 AS sk_tempo,
      'P' AS HIST_FL_ANTECIPACAO
FROM  HISTORICO_AR@DB_ORADB01 ar, USUARIO@DB_ORADB01 u
WHERE ar.cd_usuario_ar = U.cd_usuario
AND   cd_historico_ar IN(
                      SELECT Max(cd_historico_ar)
                      FROM  HISTORICO_AR@DB_ORADB01 ar2 
                      --WHERE cd_Estabelecimento = 78654                       
                      GROUP BY cd_estabelecimento, Trunc(dt_ultimo_contato)
                      )

);
COMMIT;

UPDATE F_AR far
SET   (SK_TEMPO) = (SELECT DT.SK_TEMPO FROM  D_TEMPO DT
                    WHERE  hist_dt_ultimo_contato = dat_data);
COMMIT;

--verifica estabelecimentos antecipados ultimos 60 dias
UPDATE F_AR FAR
SET HIST_FL_ANTECIPACAO = 'M'
WHERE EXISTS(SELECT   1
              FROM    estabelecimento_adiantamento@db_oradb01 EA
              WHERE   EA.cd_estabelecimento = FAR.CD_ESTABELECIMENTO
              AND     dt_reprovacao_adiantamento IS NULL
              AND     dt_liberacao_adiantamento IS NOT null
              AND     dt_liberacao_adiantamento BETWEEN (far.hist_dt_ultimo_contato-60) AND (far.hist_dt_ultimo_contato+1)
             );
COMMIT;

SELECT Count(*)
INTO vLINHAS
FROM F_AR;

GRAVA_LOG('SP_F_AR',vDT_INICIO, vLINHAS);
commit work;

END;
mariogus
Location: Porto Alegre - RS

Poston Tue, 15 Apr 2008 1:36 pm

Hi...

Excuse the ignorance ... but I understood what you meant!
: roll: could you explain again?
jucruzjc
Location: Santa Bárbaba d'Oeste

Poston Tue, 15 Apr 2008 2:00 pm

You want to pass these two information for parameter, and make sure they participate of your INSERT?
Trevisolli
Location: Araraquara - SP

Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Poston Tue, 15 Apr 2008 2:02 pm

Yes ... my question is also if I need to change the F_AR suit?
mariogus
Location: Porto Alegre - RS



Return to SQL

Who is online

Users browsing this forum: No registered users and 4 guests



cron