peterh Asked: 2014-09-17 04:52:25 +0800 CST2014-09-17 04:52:25 +0800 CST 2014-09-17 04:52:25 +0800 CST 在 Oracle 中创建布尔列时的最佳实践是什么? 772 我又遇到了一个严重的问题,Oracle 根本没有布尔列类型。我需要使用char(1), 或smallint, 或其他一些。 什么是最佳实践,如何在 Oracle 中模拟布尔值? (空间消耗现在并不重要——但与 java/hibernate 线的良好合作很重要)。 oracle datatypes 2 个回答 Voted a_horse_with_no_name 2014-09-17T04:57:28+08:002014-09-17T04:57:28+08:00 我通常使用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'; 以便在查看表的定义时可以看到对“真实”含义的解释。 由于本地化问题,我会避免字符表示。但如果这样做,请确保创建适当的检查约束。因为不清楚 a是否char(1)会使用T, Y, y, t(甚至我在德语中看到的)。WJ Best Answer Vadim 2014-09-17T05:16:55+08:002014-09-17T05:16:55+08:00 我建议您使用需要默认值的 SMALLINT 列(1=true,0=false,默认值 = 0)
我通常使用
number(1)
结合检查约束的类型:为了让事情一目了然,我还在该表中添加了一条评论:
以便在查看表的定义时可以看到对“真实”含义的解释。
由于本地化问题,我会避免字符表示。但如果这样做,请确保创建适当的检查约束。因为不清楚 a是否
char(1)
会使用T
,Y
,y
,t
(甚至我在德语中看到的)。W
J
我建议您使用需要默认值的 SMALLINT 列(1=true,0=false,默认值 = 0)