estou usando o postgre 8.3 com o java mas estou com um problema para diferenciar letras com acento ja tentei usar
SELECT * FROM agenda
WHERE NOME ILIKE to_ascii(‘jose’) no banco esta assim josé
da o seginte erro
ERROR: encoding conversion from WIN1252 to ASCII not supported
SQL state: 0A000
ja tentei com o UTF-8 e latin1
ele grava certo e retorna certo o problema e em buscar digitando sem acento e ele me retornar todos com e sem
grato
JOSE MARIO
Bom, quando crio uma base de dados nos postgre sempre defino como Latin1.
Se vc estiver somente estudando e realizando testes, tente recriar sua base de dados e cuide na hora de definir o encode. Escolha Latin1.
Olá!
Crie esta função no PostgreSQL:
CREATE OR REPLACE FUNCTION sem_acento(text)
RETURNS text AS
$BODY$
select
translate($1,'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ','aaaaaeeeeiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcC');
$BODY$
LANGUAGE 'sql' IMMUTABLE STRICT;
Depois é só aplicar
SELECT * FROM suaTabela WHERE UPPER(sem_acento(campo)) LIKE UPPER(sem_acento('%TéS%'));
-- Retorna todos TES, TÉS, tes, etc.
Vlw
Movido para o fórum de Persistência. Por favor, leia atentamente a descrição dos fóruns antes de postar.