Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

SQL - Por que preencher espaços ao comparar caracteres?


Você está confundindo os diferentes tipos de personagens e o que está acontecendo. Ao executar:
SELECT * from SOME_TABLE where CUSTOMER_NAME = 'Popeye '

Nenhum espaço é adicionado "a cada linha em SOME_TABLE". A única questão é a largura dos resultados. Essa largura é definida pelas propriedades das colunas em SOME_TABLE, não pelo que aparece na cláusula WHERE.

Se seu CUSTOMER_NAME for declarado como um valor char(x), a string deverá ter esse comprimento. Digamos, é char(10) e você atribui 'Popeye' a ele. O valor tem seis caracteres e isso deve ser preenchido para 10, de alguma forma. O padrão SQL é preencher no lado direito, tornando o valor 'Popeye ' .

Se você quiser strings de comprimento variável, use varchar ou varchar2.