昨天我想向 Oracle 表添加一个布尔字段。然而,Oracle 中实际上并没有布尔数据类型。这里有人知道模拟布尔值的最佳方法吗?谷歌搜索这个主题发现了几种方法
使用一个整数,并且不要为它分配除 0 或 1 之外的任何值。
使用以“Y”或“N”作为仅有的两个值的字符字段。
使用带有 CHECK 约束的枚举。
经验丰富的 Oracle 开发人员是否知道哪种方法是首选/规范的?
I found this链接有用。
以下段落强调了每种方法的一些优点/缺点。
最常见的设计就是模仿许多类似布尔的
Oracle 数据字典视图使用的标志,选择“Y”表示 true
'N' 表示假。但是,要与主机正确交互
环境,例如 JDBC、OCCI 和其他编程环境,
最好选择 0 为 false,1 为 true,这样它就可以工作
正确使用 getBoolean 和 setBoolean 函数。
基本上他们提倡方法2,为了效率,使用
-
values0/1(因为与 JDBC 的互操作性
getBoolean()
等)带有检查约束
- a typeCHAR(因为它使用的空间比 NUMBER 少)。
他们的例子:
create table tbool (bool char check (bool in (0,1));
insert into tbool values(0);
insert into tbool values(1);`
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)