oneon 0 Denunciar post Postado Abril 9, 2009 Pessoal, estou com um pequeno problema. Tenho uma função que me traz dados: select fnc_juntocom('075434') from dual Ele me retorna '065123','065124'. Então, sabendo que ele me retorna isso, fiz um select dessa forma: "SELECT SUM(PESO) PESO,SUM(COMCRU) METROS FROM ITEMROM I,CARTAL L, CARTAC C where c.numcar=l.numcar and i.item=l.item and c.chave=i.chave and c.NUMCAR in ( fnc_juntocom('075434') )" Mas, ele não me retorna nenhum registro. Porem se eu fizer com os mesmos dados: (...) c.numcar=l.numcar and i.item=l.item and c.chave=i.chave and c.NUMCAR in ( '065123','065124' ) Ele me retorna normal... :unsure: Alguem pode dar uma ajuda? Ah.. é oracle 8 http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 9, 2009 Qual o TYPE que a function retorna ? Uma lista IN não permite este tipo de tratamento , existe uma solução que faz um TYPECAST para pode usar num Select Veja http://asktom.oracle.com/pls/asktom/f?p=10...ID:210612357425 SE o retorno for uma string , existe outra solução ... Supondo que se retorne algo assim : '12345,67890' faça SELECT * FROM TABELA WHERE INSTR(funcao(123),campo) > 0 Ou seja testa se o conteúdo do CAMPO está na string de retorno, o problema disto e que houver uma campo com '123' por exemplo seria tratado como sim , ou seja iso só se aplica quando o campo tem um tamanho e tipo definido , senão mont a solução lá do AskTom. Compartilhar este post Link para o post Compartilhar em outros sites