Em 28 de março de 2014 01:46, Emanuel Araújo <[email protected]> escreveu:
> Senhores,
>
> Identifiquei o seguinte:
>
> Nesse código:
>
>
>   WHERE grupos.s_tipogrupo = (SELECT s_valor
>                          FROM t_parametro_cliente
>                         WHERE s_campo = 'v_utiliza_grupo')      ;
>
> Quando substituo o = por IN na primeira comparação do WHERE, o resultado
> aparece.
> Deve ser algum problema de comparação das tipagem, é o que suspeito, entre o
> que eu mando ou recebo de volta do Oracle.
>
> Resolvido? Sim, Solucionado? Não.

E se a subquery (segundo SELECT) retornar mais de um registro? Não
seria essa a causa do erro?

Se a condição estiver certa mas existirem registros duplicados você
pode usar programação defensiva com uma função MAX ou MIN. Exemplo:

WHERE grupos.s_tipogrupo = (SELECT MAX(s_valor) FROM
t_parametro_cliente WHERE s_campo = 'v_utiliza_grupo');


TIAGO J. ADAMI
http://www.adamiworks.com
@tiadami
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a