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