Em 28-02-2011 19:37, Marcal Hokama escreveu:
> ----------------------------------------
>> Date: Mon, 28 Feb 2011 14:02:05 -0400
>> From: ma...@tj.rr.gov.br
>> To: pgbr-geral@listas.postgresql.org.br
>> Subject: Re: [pgbr-geral] Operador varchar = int8 no postgreSQL 9
>>
>> Em 28-02-2011 13:09, Flavio Henrique Araque Gurgel escreveu:
>>>> Olá a todos.
>>>>
>>>> Ha alguns anos, migrei um sistema legado do MS SQLServer para PostgreSQL.
>>>> Esse sistema faz consultas do tipo:
>>>>
>>>> SELECT * FROM organizacional.funcionario WHERE matricula = 989676;
>>>>
>>>> onde matricula é um varchar.
>>>>
>>>> Até a versão 8.1 (que utilizávamos aqui até o mês passado) o SGBD aceitava
>>>> comparações varchar = int, bem como int = varchar.
>>>>
>>>> Depois de atualizarmos para versão 9.0.2 esta consulta passou a dar erro:
>>>> Error: ERRO: operador não existe: character varying = integer
>>>> SQLState: 42883
>>>>
>>>> Tentei contornar o problema criando os operadores:
>>>> CREATE OPERATOR = (PROCEDURE = fn_int8eqvarchar, LEFTARG = int8 , RIGHTARG 
>>>> =
>>>> varchar)
>>>> CREATE OPERATOR = (PROCEDURE = fn_varchareqint8, LEFTARG = varchar , 
>>>> RIGHTARG =
>>>> int8)
>>>>
>>>> Mas tive um efeito colateral inadmissível. Comparações varchar = varchar
>>>> passaram a dar erro:
>>>> Error: ERRO: sintaxe de entrada é inválida para integer: "P"
>>>> SQLState: 22P02
>>>>
>>>> Alguma sugestão?
>>> Conserte sua aplicação. Ela é que está errada, não o banco de dados.
>>> Isso já foi discutido aqui e nos fóruns internacionais. Os
>>> desenvolvedores avisaram sobre isso nos release notes.
>>> A conversão automática de tipos foi removida a partir do PostgreSQL
>>> 8.3, ou seja, já faz tempinho.
>>>
>>> []s
>>> Flavio Gurgel
>>> _______________________________________________
>>> pgbr-geral mailing list
>>> pgbr-geral@listas.postgresql.org.br
>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>>
>>
>> Não tenho essa opção, e se for a única, vou ter que apelar para um downgrade.
>>
>> _______________________________________________
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> Não é possível a conversão da coluna organizacional.funcionario.matricula de 
> varchar para integer? Pelo que pude perceber da sua consulta só tem valores 
> numéricos neste campo.
> Um abraço,
> Marçal de Lima hokama----------------------mhok...@hotmail.com                
>                         
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
Não, o mesmo maldito sistema faz consultas nesse campo com like.
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a