Bom dia Galera,
Preciso inserir os dados da tabela stg_loc_cliente_fe na tabela STG_DIM_FAIXA_ETARIA, porém antes que o INSERT ocorra preciso verificar se o cd_cliente já exista, caso o cd_cliente existe, não poderá ocorrer o INSERT, pois o sequence não pode ser alterado.
Podem me ajudar?
CREATE OR REPLACE PROCEDURE carga_stg_dim_faixa_etaria as
CURSOR stg_loc_cliente_fe is
SELECT
cd_cliente,
dt_nascimento
FROM stg_loc_cliente_fe;
v_contador number := 00;
v_error varchar2(255);
v_surrogate_key_fe number;
BEGIN
DELETE STG_DIM_FAIXA_ETARIA;
FOR i IN stg_loc_cliente_fe
LOOP
v_contador := v_contador + 1;
SELECT SEQ_DIM_FAIXA_ETARIA.NEXTVAL
INTO v_surrogate_key_fe
FROM DUAL;
INSERT INTO STG_DIM_FAIXA_ETARIA
(
sk_faixa_etaria,
cd_cliente,
tp_faixa_etaria
)
VALUES
(
v_surrogate_key_fe,
i.cd_cliente,
i.dt_nascimento
);
END LOOP;
dbms_output.put_line(‘Total de Linhas processadas… : ‘||to_char(v_contador));
COMMIT;
EXCEPTION
WHEN OTHERS THEN
v_error := substr(sqlerrm,1,255);
raise_application_error(-20006, ‘Erro crítico…: ‘ || v_error );
END;
Obrigado a todos…
Denis.