Angelice 0 Denunciar post Postado Março 12, 2009 Olá, tenho um sistema desenvolvido em Delphi 7.0 utilizando banco de dados oracle nas versões 9i e 10g. O código abaixo roda sem problemas no banco de dados de produção e na base de testes, sendo o primeiro 10g e o segundo 9i. Criamos um terceiro banco, na mesma maquina, utilizando a versão 9i e nesse o código não roda de forma alguma, sempre aparece o erro. Segue abaixo o código e o erro: SELECT DECODE(Is_Greatest(NUM_UMIDADE_DESCONTO,NUM_UMIDADE_TOLERANCIA), 1, (NUM_UMIDADE_TOLERANCIA), 0) AS Umidade FROM TB_PADRAO_DESCONTO_PRODUTO; DECODE(Is_Greatest(NUM_UMIDADE_DESCONTO,NUM_UMIDADE_TOLERANCIA), 1, (NUM_UMIDADE_TOLERANCIA), 0) AS Umidade * ERRO na linha 2: ORA-00904: nome inválido de coluna O erro ocorre na função Is_greatest, não consegui encontrar nenhuma referencia sobre essa função e o programador que desenvolveu esse codigo não se encontra mais na empresa. Por favor, se alguém puder me ajudar agradeço muito, não sei mais oq fazer. Muito Obrigada Angelice Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Março 12, 2009 Angelice, seu problema não é no código do delphi e sim problema nas suas rotinas de pesquisa no oracle. Então, moverei o tópico para a área apropriada. Movido Delphi -> Gerenciamento de Banco de Dados -> Oracle Compartilhar este post Link para o post Compartilhar em outros sites
Angelice 0 Denunciar post Postado Março 12, 2009 Angelice, seu problema não é no código do delphi e sim problema nas suas rotinas de pesquisa no oracle. Então, moverei o tópico para a área apropriada. Movido Delphi -> Gerenciamento de Banco de Dados -> Oracle Ok, muito obrigada. Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Março 12, 2009 Angelice, dei uma pesquisada rápida sobre a função Is_Greatest na web... e não encontrei nada sobre ela. O mais próximo que encontrei foi a função Greatest, neste link... você tem certeza que esta função Is_greatest existe no oracle? Você verificou se nas outras bases onde chama esta função se ela não foi uma rotina criada direto na base (uma procedure/function)? []'s Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Março 12, 2009 Nas versões antigas o SQL não tinha CASE assim alguns tratamentos mais complexos deviam ser feitos com uso de funções de usuários. No Sistema antigo deve ter uma FUNCTION com este nome Is_Greatest , esta deve ter sido criada por algum programador para resolver um tratamento de maior e menor. O mais simples para manter o legado é criar a função na nova tabela. senão achar a solução seria reescrever a function (deve comparar duas variaveis e devolver 0 ou 1 conforme a condição e´maior ou não, mais presisa saber como a function espera e deveve os parametros) ou mudar as sql para tratrar via case (mais demorado). Compartilhar este post Link para o post Compartilhar em outros sites
Angelice 0 Denunciar post Postado Março 12, 2009 Valeu pessoal, seguindo a orientação de vcs fui procurar em funções antigas criadas aqui e encontrei essa. Foi só criar ela no banco e funcionou. Muito Obrigada! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites