ORA-00904: : identificador inválido

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Responder
vvp0
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Ter, 23 Out 2012 2:04 pm

Ola Pessoal,

Estou com um problemão onde tenho uma aplicação que roda uma consulta, porém ao rodar esta consulta dispara um erro de ORA-00904: : identificador inválido, porem não diz qual identificador está invalido, mas quando rodo ela pela ferramenta SQL roda sem problema. Gostaria de saber se tem alguma forma, algum select onde que eu posso ver mais a fundo os erros disparados pelo Oracle, para tentar descobrir este identificador. alguém sabe?

Abaixo a consulta

Selecionar tudo

SELECT this_.DH_CONSULTA_INI                                                                                                              AS y0_,
  ((DH_CONSULTA_INI - DBAMV.FNC_MVGF_MAIOR_DH_PROCESSO( this_.DH_CONSULTA_INI, this_.CD_TRIAGEM_ATENDIMENTO, ',30, 31,') )*24*60*60*1000) AS media,
  this_.CD_TRIAGEM_ATENDIMENTO                                                                                                            AS y2_,
  this_.CD_ATENDIMENTO                                                                                                                    AS y3_,
  this_.DS_SENHA                                                                                                                          AS y4_,
  this_.DH_CLASSIFICACAO_INI                                                                                                              AS y5_,
  this_.DH_CLASSIFICACAO_FIM                                                                                                              AS y6_
FROM dbamv.GF_DADOS this_
WHERE this_.DS_SEQUENCIA_PROCESSO          ='1,2,3,4,5'
AND this_.CD_MULTI_EMPRESA                 =1
AND this_.DH_CONSULTA_INI                 IS NOT NULL
AND TO_CHAR(DH_CONSULTA_INI,'hh24:mi:ss') >= '00:00:00'
AND TO_CHAR(DH_CONSULTA_INI,'hh24:mi:ss') <= '23:59:59'
AND this_.DH_CONSULTA_INI BETWEEN sysdate AND sysdate - 1
AND DBAMV.FNC_MVGF_MAIOR_DH_PROCESSO( this_.DH_CONSULTA_INI, this_.CD_TRIAGEM_ATENDIMENTO, ',30, 31,') IS NOT NULL
AND this_.CD_CLASSIFICACAO                                                                              =10
AND this_.DH_CLASSIFICACAO_INI                                                                         IS NULL
AND this_.CD_FILA_SENHA                                                                                IN (select cd_fila_senha from FILA_SENHA)
ORDER BY this_.DH_CONSULTA_INI ASC

Avatar do usuário
adrianoturbo
Moderador
Moderador
Mensagens: 393
Registrado em: Qui, 20 Mar 2008 4:09 pm
Localização: Brasília
Adriano Alves
---Para cada problema dificil existe uma solução simples.----

Brother,faz o seguinte edita a sua function DBAMV.FNC_MVGF_MAIOR_DH_PROCESSO na linha abaixo do BEGIN e antes do select insira a instrução : EXECUTE IMMEDIATE conforme mostrado no exemplo abaixo:

Selecionar tudo

BEGIN
   [b]EXECUTE IMMEDIATE [/b]SELECT COUNT(HREM_IN_SEQUENCIA) INTO R FROM REMESSA
      WHERE HCON_IN_SEQUENCIA = pHCON_IN_SEQUENCIA
      AND   TRUNC(HREM_DT_ENVIO) = TRUNC(pHREM_DT_ENVIO)
      AND   HREM_ST_TIPO <> 'RT';
    R := R + 1;

         RETURN(R);
END;

Feito roda o select que não dará o erro .
Como estamos trabalhando com instruções dinâmicas ,segue um conceito bacana da Oracle:
http://docs.oracle.com/cd/B19306_01/app ... tement.htm
Espero ter ajudado.
Boa sorte.
Avatar do usuário
adrianoturbo
Moderador
Moderador
Mensagens: 393
Registrado em: Qui, 20 Mar 2008 4:09 pm
Localização: Brasília
Adriano Alves
---Para cada problema dificil existe uma solução simples.----

Selecionar tudo

BEGIN
   EXECUTE IMMEDIATE SELECT COUNT(HREM_IN_SEQUENCIA) INTO R FROM REMESSA
      WHERE HCON_IN_SEQUENCIA = pHCON_IN_SEQUENCIA
      AND   TRUNC(HREM_DT_ENVIO) = TRUNC(pHREM_DT_ENVIO)
      AND   HREM_ST_TIPO <> 'RT';
    R := R + 1;

         RETURN(R);
END;
desconsidere os bs,pensei que conseguiria negritar no code.
Responder
  • Informação
  • Quem está online

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