Postgre 8.3 problema com acento

4 respostas
S

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

4 Respostas

F

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.

joaoluis

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

edivandecastro

Oh funçãozinha mão na roda. :smiley: :smiley: :smiley:

ViniGodoy

Movido para o fórum de Persistência. Por favor, leia atentamente a descrição dos fóruns antes de postar.

Criado 4 de maio de 2008
Ultima resposta 31 de mai. de 2011
Respostas 4
Participantes 5