【发布时间】:2011-01-26 10:29:07
【问题描述】:
Oracle 不支持 bit 数据类型或任何其他类型的真/假方案。是否有人使用char(1) 字段而不是使用特定字母来表示是/真,而不管文化特定问题如何?
应该用Number(1,0) 代替char - 0 被认为是假/否,其他任何东西都被解释为真/是?
这可行吗?
为什么 Oracle 不支持简单的布尔类型?
【问题讨论】:
-
在所有保留下,Oracle 不提供 BOOL 或 BOOLEAN(也许只有最新版本......)数据类型?我真的记不太清楚了。我已经两年多没有做Oracle了。反正 NUMBER(1) 就可以了,它说它需要什么,就像一个 BIT - 0 或 1,一个 NUMBER(1) - 0 或 1,有什么区别?
-
@Will: Number(1, 0) 可以是任何一位数 (0-9),而不仅仅是 0 或 1。
-
是的,当然!但是您无法控制数据表列的值吗?
-
@Will:不幸的是,Oracle 没有为表中的数据提供 Bit 或 Boolean 作为可接受的数据类型......至于你限制为 0 或 1,我同意你的看法 - 这是如果我是我们项目的技术负责人,我们会采取什么样的方式 - 但可惜我不是......
-
另见关于布尔数据类型的类似问题:stackoverflow.com/questions/3726758/…