Procedure update com exists não funciona - porque?

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
gohan123
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Qui, 21 Out 2010 2:48 pm
Localização: São Paulo

Boa tarde amigos,

Estou com uma dificuldade de fazer essa proc funcionar.. Quando eu executo o update separado funciona,mas quando executo pela procedure, não funciona.. Vocês conseguem me dizer porque?

Query update - funciona

Selecionar tudo

UPDATE VPE_TB_RET2009_BLOQ_FAT B
SET FAT_SET10 = 'SIM'
    WHERE EXISTS (SELECT DISTINCT A.ID_DO_CONCEITO_FATURAVEL FROM VPE_TB_FAT_SET10 A
                WHERE B.ID_VANTIVE = A.ID_DO_CONCEITO_FATURAVEL
                                  AND B.FIM_FAT = A.DTORIGEM);
Procedure não funciona

Selecionar tudo

CREATE OR REPLACE PROCEDURE ERICSSON.INSERT_FATUR_RETIDO AS


V_VPE_TB_FAT_SET10  VARCHAR2(16) := 'VPE_TB_FAT_SET10';
V_ID_VANTIVE VARCHAR2(10) := 'ID_VANTIVE';
V_FIM_FAT    VARCHAR2(7) := 'FIM_FAT';
V_FAT_SET10  VARCHAR2(9) := 'FAT_SET10';
V_RET2009_BLOQ  VARCHAR2(23) := 'VPE_TB_RET2009_BLOQ_FAT';
V_SQLTEXT       VARCHAR2(2000);

BEGIN


  V_SQLTEXT := ' UPDATE '|| V_RET2009_BLOQ ||' B SET '|| V_FAT_SET10 ||' = ''SIM'' WHERE EXISTS (SELECT DISTINCT A.ID_DO_CONCEITO_FATURAVEL FROM '|| V_VPE_TB_FAT_SET10 ||'A WHERE B.'|| V_ID_VANTIVE ||' = A.ID_DO_CONCEITO_FATURAVEL AND B.'|| V_FIM_FAT ||'A.DTORIGEM)';

  EXECUTE IMMEDIATE ' UPDATE '|| V_RET2009_BLOQ ||' B SET '|| V_FAT_SET10 ||' = ''SIM''
            WHERE EXISTS (SELECT DISTINCT A.ID_DO_CONCEITO_FATURAVEL FROM '|| V_VPE_TB_FAT_SET10 ||'A
									WHERE B.'|| V_ID_VANTIVE ||' = A.ID_DO_CONCEITO_FATURAVEL 
                                    AND B.'|| V_FIM_FAT ||'A.DTORIGEM)';

COMMIT;


EXCEPTION
   WHEN OTHERS THEN
      DBMS_OUTPUT.PUT_LINE(SQLERRM);
      DBMS_OUTPUT.PUT_LINE(V_SQLTEXT);
END;
/
gfkauer
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 389
Registrado em: Ter, 27 Jul 2010 1:34 pm
Localização: Sapiranga - RS
Contato:
Quem falou que programar era fácil??

Quanto mais dificil for a implementação mais valorizado seu trabalho será!

Acessem: www.gfkauer.com.br

no ultimo And falta um =
gohan123
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Qui, 21 Out 2010 2:48 pm
Localização: São Paulo

Puts.. Muito obrigado amigo.. Esse = passou despercebido.

abs,
gfkauer
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 389
Registrado em: Ter, 27 Jul 2010 1:34 pm
Localização: Sapiranga - RS
Contato:
Quem falou que programar era fácil??

Quanto mais dificil for a implementação mais valorizado seu trabalho será!

Acessem: www.gfkauer.com.br

De nada. Mas nem encana, este tipo de erro é extremamente comum, e geralmente o dono do código não vê o que falta.
Responder
  • Informação
  • Quem está online

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