Pular para o conteúdo
  • Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 8 anos, 6 meses atrás por Avatar de Paulo WerneckPaulo Werneck.
Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #108148
    Avatar de denis cioladenis ciola
    Participante

      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.

      #108149
      Avatar de Paulo WerneckPaulo Werneck
      Participante

        @denis

        Não entendi a lógica da linha aonde vc pos “DELETE STG_DIM_FAIXA_ETARIA”, e também parece estar faltando a clausula from.

        quanto essa regra de negócio, se a tabela for sua de criação, já pensou em utilizar uma constraint de unique, ou pk? Dependendo da modelagem, isso garantirá integridade dos dados no banco como um todo

      Visualizando 2 posts - 1 até 2 (de 2 do total)
      • Você deve fazer login para responder a este tópico.
      plugins premium WordPress