Pular para o conteúdo
Visualizando 5 posts - 1 até 5 (de 5 do total)
  • Autor
    Posts
  • #97794
    Avatar de Leo_nardoLeo_nardo
    Participante

      Amigos me deparei com um problema que nao tinha visto ainda…

      Estou fazendo um script e criei~um bloco e estou chamando uma procedure dentro deste bloco…

      Quando eu executo no pl/sql developer , (sql window) simplesmente ele nao entra na procedure..

      Mas quando eu executo no pl/sql developer (test window) ele entra na procedure e faz tudo que tem que fazer.

      Alguem ode me ajudar.?

      vlw

      #97800
      Avatar photoRegis Araujo
      Participante

        Ola Leonardo.. bom dia..!

        Está meio confuso isto q vc disse..!!

        Coloque aqui como vc está escrevendo isto.. coloque o bloco que vc manda executar..!!

        Abraços..!

        #97801
        Avatar de Leo_nardoLeo_nardo
        Participante

          DECLARE
          CURSOR tot_pnt_fata IS
          SELECT cd_cc cliente,
          SUM(nr_pnt) pontos
          FROM t416fata
          GROUP BY cd_cc;
          CURSOR pnt_acima IS
          SELECT cd_cc
          FROM t411licc
          WHERE nr_pt > 1000;

          v_cli_acm NUMBER(20);
          v_pnt     NUMBER(20);
          v_cli     NUMBER(20);
          

          BEGIN

          OPEN tot_pnt_fata;
          
          LOOP
              FETCH tot_pnt_fata
                  INTO v_cli,
                        v_pnt;
          
              UPDATE t411licc licc
                  SET licc.nr_pt = v_pnt
               WHERE licc.cd_cc = v_cli;
          
              EXIT WHEN tot_pnt_fata%NOTFOUND;
          
          END LOOP;
          
          CLOSE tot_pnt_fata;
          
          
          pkg_fidelidade.sp_gera_relatorio;
          
          
          
          OPEN pnt_acima;
          
          LOOP
              FETCH pnt_acima
                  INTO v_cli_acm;
          
              UPDATE t411licc licc
                  SET licc.nr_pt  = licc.nr_pt - 1000,
                       licc.dh_atu = SYSDATE
               WHERE licc.cd_cc = v_cli_acm;
          
          
          EXIT WHEN pnt_acima%NOTFOUND;
          

          END LOOP;
          CLOSE pnt_acima;

          END;

          este é o bloco.. quando executo ele nao entra no pkg_fidelidade.sp_gera_relatorio;
          mas se eu for debugar passo a passo ele entra no pkg_fidelidade.sp_gera_relatorio;

          não sei se ficou mais claro?

          #97815
          Avatar photoRegis Araujo
          Participante

            Opa..!

            Vamos lá..!!

            Tente colocar o EXECUTE IMMEDIATE antes da chamada da package..!!!

            Tipo..

            execute immediate pkg_fidelidade.sp_gera_relatorio;

            Outra coisa.. tente colocar algum informativo dentro da procedure, um sendmail ou um “dbms_output.put_line (‘PASSOOOOOO’);” para vc ver se realmente não esta entrando na procedure… pois o processo pode entrar na procedure e não realizar nenhum procedimento ou até mesmo dar erro.. ja que no debug vc consegue ver o passo a passo de todas as operações..!!

            Vc cria este procedimento via bloco anonimo ?

            Abraços..!

            #97842
            Avatar de Leo_nardoLeo_nardo
            Participante

              Bom funcionou, coloquei o execute immediate…

              Nao esse procedimento ja esta no banco, só chamo ele para gerar o relatorio..

              este bloco q eu fiz é no para manipular os dados q vao para o relatorio..

              Valeu mesmo Thunder_Catz

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