borda_esquerda
borda_direita

Consulta no postgres com acentos

  Vou mostrar neste post como utilizar uma função em pl sql que retira acentos, para os casos em que a codificação do seu banco for utf-8.
  Um grande problema que encontrei quando comecei a desenvolver sistemas para web, foi o fato de ter que realizar consultas com palavras acentuadas em bancos de dados com codificação utf-8, e vi que isso era a dúvida e um grande problema para muitos outros desenvolvedores tambem.
  Então segue abaixo uma função em pl sql para postgres que retira os acentos, para facilitar na hora da consulta.

Obs: Esta função foi achada em fóruns sobre postgres, por isso não creditei a ninguem, caso alguém conheça o criador do código, deixa como comentário que eu atualizo o post dando o devido crédito.
CREATE OR REPLACE FUNCTION sem_acento(text)
RETURNS text AS
$BODY$
select
translate($1,'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',
'aaaaaeeeeiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcC'); $BODY$
LANGUAGE 'sql' IMMUTABLE STRICT;
E depois de criado a função no postgres é só realizar as consultas como no exemplo abaixo: SELECT * FROM Tabela WHERE UPPER(sem_acento(campo_que_deseja_retirar_os_acentos))
LIKE UPPER(sem_acento('%cão%'));
-- Retorna CAO, CÃO, cao, etc.

2 comentários:

Vinicius disse...
Este comentário foi removido pelo autor.
Vinicius disse...

SELECT * FROM Tabela WHERE to_ascii(campo_que_deseja_retirar_os_acentos)
iLIKE to_ascii('cão%');

NÃO PRECISA CRIAR FUNÇÃO, O POSTGRES JA TEM ESSA FUNCAO... TO_ASCII

Postar um comentário

Deixe seu Comentário