昨天我想给一个Oracle表添加一个布尔字段。但是,Oracle中实际上没有布尔数据类型。这里有人知道模拟布尔值的最好方法吗?搜索主题发现了几种方法
>使用整数,只是不打扰分配除0或1之外的任何东西。
>使用带有“Y”或“N”的char字段作为唯一的两个值。
>使用CHECK约束的枚举。
经验丰富的Oracle开发人员知道哪种方法是首选/规范的?
我发现
this链接有用。
这里是突出每种方法的一些优点/缺点的段落。
The most commonly seen design is to imitate the many Boolean-like
flags that Oracle’s data dictionary views use,selecting ‘Y’ for true
and ‘N’ for false. However,to interact correctly with host
environments,such as JDBC,OCCI,and other programming environments,
it’s better to select 0 for false and 1 for true so it can work
correctly with the getBoolean and setBoolean functions.
基本上他们主张方法2,为了效率,使用
>值为0/1(因为与JDBC的getBoolean()等具有互操作性)与检查约束
> CHAR类型(因为它使用比NUMBER少的空间)。
他们的例子:
06000