昨天我想向Oracle表中添加一个布尔型字段。但是,Oracle中实际上并没有布尔数据类型。这里有没有人知道模拟布尔值的最好方法?在谷歌上搜索这个主题发现了几种方法
有经验的Oracle开发人员是否知道哪种方法是首选的/规范的?
发布于 2008-08-27 13:23:06
我发现this链接很有用。
下面的段落重点介绍了每种方法的一些优缺点。
最常见的设计是模仿Oracle的数据字典视图使用的许多类似布尔的标志,选择'Y‘表示true,选择'N’表示false。但是,为了正确地与主机环境交互,比如JDBC、OCCI和其他编程环境,最好选择0表示false,选择1表示true,这样它就可以正确地使用getBoolean和setBoolean函数。
基本上,为了提高效率,他们提倡方法2,使用
的
getBoolean()
等的互操作性)。使用check约束,他们的例子:
创建表tbool (bool char check (bool in (0,1));insert into tbool values(0);insert into tbool values(1);`
发布于 2008-10-21 19:23:39
Oracle本身对布尔值使用Y/N。为了完整性,应该注意到pl/sql有一个boolean类型,只有表没有。
如果您使用该字段来指示是否需要处理记录,则可以考虑使用Y和NULL作为值。这使得索引非常小(读取速度很快),并且占用的空间非常小。
发布于 2008-08-27 13:29:07
要使用最少的空间,您应该使用约束为'Y‘或'N’的CHAR字段。Oracle不支持BOOLEAN、BIT或TINYINT数据类型,因此CHAR的一个字节是最小的。
https://stackoverflow.com/questions/30062
复制相似问题