Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 543170
            [titulo] => Retirar Espaço em Branco com Código na tabela ASCII
            [dataCadastro] => DateTime Object
                (
                    [date] => 2016-01-20 18:20:35
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 418027
            [status] => A
            [isExample] => 
            [NomeUsuario] => Jothaz
            [Apelido] => 
            [Foto] => 418027_20150313165406.jpg
            [Conteudo] => Se for SQL Server:

[code]Select rtrim(ltrim(sua-var))[/code] ) )

Retirar Espaço em Branco com Código na tabela ASCII

Wylliam
   - 20 jan 2016

Boa noite! Estou dando um select em um determinado campo do banco que me retorna o nome de uma cidade, o retorno está vindo assim: 'SANTOS ' com esse espaço em branco no final, tentei fazer um TRIM e tambem uma função pegando o codigo na tabela ASCII chr(32) e dando um replace, porem o espaço em branco continua.... Alguém sabe me dizer qual codigo da tabela ASCII pode ria representar esse espaço em branco que o TRIM do SQL(ORACLE) não consegue remover? Obrigado!

Post mais votado

Jothaz
   - 20 jan 2016

Se for SQL Server:

#Código

Select rtrim(ltrim(sua-var))

Wylliam
   - 21 jan 2016

Bom dia! O banco é ORACLE 11g, ele não retira o espaço em branco nem com trim(ltrim ou rtrim), nem com replace.

Marcos P
   - 21 jan 2016

Certeza que esse espaço é, realmente, um espaço ?

Será que não é um outro carácter de controle ( TAB, por exemplo ) ?

Wylliam
   - 21 jan 2016

Na verdade não é um espaço porque a função TRIM do Oracle não reconhece com se fosse o caractere chr(32) (espaço em branco) pra remover. Visivelmente é um caractere em branco mas na tabela ASCII deve representar outro caractere que eu não sei qual é. Você sabe qual a representação do TAB na tabela ASCII?

Marcos P
   - 21 jan 2016

horizontal tab (HT) : CHAR(9)
vertical tab (VT) : CHAR(11)

http://www.theasciicode.com.ar/ascii-control-characters/horizontal-tab-ascii-code-9.html

Wylliam
   - 21 jan 2016

Valeu Cara! Consegui resolver o problema. Eu fiz um bloco de instrução para achar todos os caracteres em branco possíveis e acabei achando esses:

#Código

DECLARE 
BEGIN
   FOR i IN 0..255 LOOP
      DBMS_OUTPUT.PUT_LINE('chr'||i|| ':' || chr(i));
   END LOOP;  
END; 


chr(0)
chr(1)
chr(9)
chr(10)
chr(11)
chr(12)
chr(13)
chr(32)
chr(160)

Então fiz essa função para resolver o problema de quando o trim não funciona:
#Código
CREATE OR REPLACE FUNCTION REMOVE_ESPACO(p_String IN VARCHAR2)   
RETURN VARCHAR2
IS
BEGIN
   p_String:= REPLACE(p_String, chr(0), chr(32));
   p_String:= REPLACE(p_String, chr(1), chr(32));
   p_String:= REPLACE(p_String, chr(9), chr(32));  
   p_String:= REPLACE(p_String, chr(10), chr(32));
   p_String:= REPLACE(p_String, chr(11), chr(32));
   p_String:= REPLACE(p_String, chr(12), chr(32));
   p_String:= REPLACE(p_String, chr(13), chr(32));
   p_String:= REPLACE(p_String, chr(160), chr(32));  
   
   RETURN TRIM(p_String);
END;


Obs: o chr(32) consegue ser removido com o TRIM.

Faabiianooc
   - 22 jan 2016

Esse caracter é o ENTER que por sua vez é o char(13)