私は再び深刻な問題に直面しました。Oracleにはブール型の列型がないだけなのです。 char(1)
、smallint
、またはその他を使用する必要があります。
Oracleでブール値をエミュレートするためのベストプラクティスは何ですか?
(現在、スペースの消費は重要ではありませんが、Java/hibernateラインとの良好な連携が重要でした)。
デフォルト値が必要なSMALLINT列を使用することをお勧めします(1 = true、0 = false、デフォルト値= 0)。
私は通常、チェック制約と組み合わせたnumber(1)
タイプを使用します。
_some_flag number(1) not null check (some_flag in (1,0))
_
わかりやすくするために、そのテーブルにもコメントを追加します。
_comment on column some_table.some_flag is '0 is false, 1 is true';
_
テーブルの定義を見ると、「真」の意味の説明が見られるように。
ローカリゼーションの問題のため、文字表現は避けます。ただし、そうする場合は、適切なチェック制約を作成してください。 char(1)
がT
、Y
、y
、t
(または私がドイツ語で見たW
またはJ
)を使用するかどうかは明確でないためです。