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
Re: [pgbr-geral] Operador varchar = int8 no postgreSQL 9
Marco Aurélio Carvalho Feitosa Tue, 01 Mar 2011 04:21:14 -0800
- [pgbr-geral] Operador varchar = int8 no po... Marco Aurélio Carvalho Feitosa
- Re: [pgbr-geral] Operador varchar = i... Euler Taveira de Oliveira
- Re: [pgbr-geral] Operador varchar = i... Flavio Henrique Araque Gurgel
- Re: [pgbr-geral] Operador varchar... Marco Aurélio Carvalho Feitosa
- Re: [pgbr-geral] Operador var... Marcal Hokama
- Re: [pgbr-geral] Operador... Marco Aurélio Carvalho Feitosa
- Re: [pgbr-geral] Ope... Alexsander Rosa
- Re: [pgbr-geral] Operador var... Tiago Adami
- Re: [pgbr-geral] Operador... Leonardo Cezar
- Re: [pgbr-geral] Ope... Marco Aurélio Carvalho Feitosa