Enfrentei novamente o grave problema, que o Oracle simplesmente não possui um tipo de coluna booleana. Eu preciso usar char(1)
, ou smallint
, ou algum outro.
Qual é a melhor prática, como emular valores booleanos no Oracle?
(O consumo de espaço não é importante agora - mas uma boa cooperação com a linha java/hibernate foi importante).
Eu costumo usar um
number(1)
tipo combinado com uma restrição de verificação:Para deixar as coisas claras, também adiciono um comentário a essa tabela:
para que a explicação sobre o que significa "verdadeiro" possa ser vista ao olhar para a definição da tabela.
Eu evitaria uma representação de caracteres devido a problemas de localização. Mas se você fizer isso, certifique-se de criar a restrição de verificação apropriada. Porque não está claro se a
char(1)
usariaT
,Y
,y
,t
(ou mesmoW
ouJ
o que eu vi em alemão).Eu recomendo que você use uma coluna SMALLINT com um valor padrão obrigatório (1=true, 0=false, valor padrão = 0)