ETL - Help

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
mariogus
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 157
Registrado em: Sex, 30 Nov 2007 1:17 pm
Localização: Porto Alegre - RS

Pessoal,preciso de um help para incluir alguns atributos nas procedures de atualização do ETL. São eles - dt_desativação e cd_grupo_ar.

Script:

Selecionar tudo

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;
jucruzjc
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 57
Registrado em: Qui, 11 Jan 2007 10:26 am
Localização: Santa Bárbaba d'Oeste

OI...

Desculpe a ignorância... mas num entendi o que você quis dizer!
:roll:

Poderia explicar novamente?
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

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

Você deseja passar essas duas informações por PARÂMETRO e, fazer com que elas participem do teu INSERT?
mariogus
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 157
Registrado em: Sex, 30 Nov 2007 1:17 pm
Localização: Porto Alegre - RS

Sim...a minha dúvida também consiste se preciso mudar a Fato - F_AR?
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 6 visitantes