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

Tipo de dados Oracle:Devo usar VARCHAR2 ou CHAR


Estou preocupado com espaços extras sendo colocados nos campos VARCHAR2 e com problemas de comparação. Eu sei que existem maneiras de compará-los usando aparando ou convertendo-os, mas temo que isso torne meu código confuso e com erros.

Na verdade é bem o contrário. O uso de CHAR forçará suas strings a terem um comprimento fixo, preenchendo-as com espaços se forem muito curtas. Portanto, ao comparar CHARs com strings regulares em qualquer aplicativo que esteja usando os dados, esse aplicativo precisaria adicionar um corte todas as vezes. Em outras palavras, VARCHAR2 é a escolha que naturalmente leva a um código mais limpo.

Em geral, você deve sempre use VARCHAR2, a menos que você tenha um motivo muito específico pelo qual deseja uma coluna CHAR.

Se você está preocupado com strings que têm espaços extras na frente ou na extremidade, existem algumas opções que vêm à mente:
  • Certifique-se de que qualquer processo que esteja fazendo as inserções faça um corte nelas antes de inseri-las.
  • Adicione uma restrição de verificação na coluna que garanta que string =trim(string).
  • Adicione um acionador de nível de linha antes de inserir que corta as strings à medida que elas são inseridas.
  • Certifique-se de fazer um corte nas strings sempre que consultar a tabela