2013/7/22 Marcelo da Silva <[email protected]>
> Pessoal, tenho o seguinte, sabe como é o usuário no copia e cola, as vezes
> vem caracteres invisiveis, mas que nos dão uma dor de cabeça.
>
> Veja os exemplos dos select abaixo:
>
> SELECT 'TESTE' = "TESTE"
> SELECT TRIM('TESTE ') = "TESTE"
> SELECT TRIM('TESTE
> ') = "TESTE "
>
> Vejam que o ultimo select tem um Chr(13) no final da string, o que deixa o
> Trim menos "eficiente" pois ele tira o chr(13) mas deixa um espaço.
>
>
> Me parece que o Trim entende que logo depois do " " tem um novo caracter,
> então ele passa a considerar o " " como um intervalo de palavras... isso
> acaba causando problemas numa verificação no Delphi, que que o Trim do
> Delphi limpa mesmo caracteres como chr(13) quando percebe que não há mais
> caracteres visiveis.
>
> Pergunta: Isso é um bug do trim Postgres ou esse funcionamento está
> correto?
>
>
É o comportamento padrão. O PostgreSQL vai remover apenas espaços do início
e fim quando usada função trim com apenas uma string como parâmetro [1].
Mas... Você pode passar como segundo parâmetro quais serão os caracteres
que devem ser removidos do início e fim, bastando passar uma string com os
mesmos. Exemplo, para ignorar espaço, tab, line feed e carriage return:
SELECT trim(coluna, E' \n\r\t') ...;
^ obs: tem um espaço no início da string.
[1]
http://www.postgresql.org/docs/current/static/functions-string.html#FUNCTIONS-STRING-OTHER
Atenciosamente,
--
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral