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? Marco Aurélio C Feitosa _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
