Em 22/07/13, Marcelo da Silva<marc...@ig.com.br> escreveu: > 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? > > Imaginem uma string "Teste > > > > " > > Ele acaba deixando um caracter em branco no final, no meu ver parece algo > errado com o Trim. >
Note que "TESTE" é um nome de campo (delimited identifier ou quoted identifier). http://www.postgresql.org/docs/current/interactive/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS Talvez a função regexp_replace facilite seu trabalho. SELECT regexp_replace(seu_campo, E'[\\s\\r]', '', 'g'); http://www.postgresql.org/docs/current/interactive/functions-matching.html#FUNCTIONS-POSIX-REGEXP Osvaldo _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral