- Este tópico contém 4 respostas, 2 vozes e foi atualizado pela última vez 14 anos, 11 meses atrás por
Leo_nardo.
-
AutorPosts
-
19 de janeiro de 2011 às 3:29 pm #97794
Leo_nardo
ParticipanteAmigos 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
19 de janeiro de 2011 às 4:30 pm #97800Regis Araujo
ParticipanteOla 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..!
19 de janeiro de 2011 às 4:49 pm #97801Leo_nardo
ParticipanteDECLARE
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?
19 de janeiro de 2011 às 7:33 pm #97815Regis Araujo
ParticipanteOpa..!
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..!
19 de janeiro de 2011 às 11:07 pm #97842Leo_nardo
ParticipanteBom 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
-
AutorPosts
- Você deve fazer login para responder a este tópico.