Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

oneon

SQL - Tentando usar uma função no where

Recommended Posts

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.