Oracle 不支持 bit
数据类型或任何其他类型的真/假场景。是否使用 char(1)
字段而不是通过使用特定字母来表示是/真而不管文化特定问题?
而不是 char
应该是Number(1,0)
为此 - 0 被认为是假的/否,还有什么被解释为真/是的?
这是可行的吗?
为什么 Oracle 不支持简单的 boolean 类型?
最佳答案
我更喜欢 char(1) 而不是 number(1),因为通过一些合理的字符选择,很明显哪个字符具有哪个 boolean 含义。
当然,您应该与所有不同的变体作斗争,选择一个并通过在列上放置检查约束来确保它的使用。
尽管在您的情况下可能为时已晚,但从另一个工具生成架构通常至少会注意一致性问题。为此,我个人更喜欢休眠,但这取决于具体情况。
当然,这是一个明显的遗漏。更糟糕的是,PL/SQL 有一个 boolean 值,但你不能在 SQL 语句中使用它。
关于Oracle 缺少表列的 Bit 数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2426145/