Certo, agora os dados passados na instrução IN tem que ser compativeis 
com o tipo de dados da coluna.


Euler Taveira de Oliveira escreveu:

>Jackson wrote:
>
>  
>
>>Nesta nova versão não aceita mais valores dentro da instrução IN que não 
>>seja string? ou tem alguma confirguração no servidor que corrigi isto?
>>
>>    
>>
>Sem configurações desta vez. Isso era um bug pois o servidor estava
>fazendo a conversão de texto para inteiro implicitamente ao passo que o
>padrão é fazê-la explicitamente.
>O exemplo abaixo ilustra as possíveis soluções. Particularmente prefiro
>a solução 1 porque "você dá a César o que é de César", ou seja, se o
>tipo da coluna 'a' é texto eu vou usar texto para comparar no IN. A
>solução 2 pode trazer resultados inesperados.
>
>regression=# select * from foo where a in (2,4);
>ERROR:  IN types character varying and integer cannot be matched
>regression=# select * from foo where a in ('2','4');
> a | b
>---+----
> 2 | 30
> 4 | 30
> 2 | 40
>(3 rows)
>
>regression=# select * from foo where a::int in (2,4);
> a | b
>---+----
> 2 | 30
> 4 | 30
> 2 | 40
>(3 rows)
>
>regression=#
>
>
>  
>

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a