---------------------------------------- > Date: Mon, 28 Feb 2011 14:02:05 -0400 > From: [email protected] > To: [email protected] > 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 > > [email protected] > > 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 > [email protected] > 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 [email protected] _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
