Oracle数据库中是否有布尔类型?

337

Oracle数据库中是否有类似于Ms SQL Server中BIT数据类型的布尔类型?


9
很遗憾,当引入 ANSI SQL:1999 标准时(http://en.wikipedia.org/wiki/SQL:1999),Oracle 并没有完全支持该标准。 - Jeffrey Kemp
2
另一种观点(为什么 SQL 不应该 有布尔类型):http://vadimtropashko.wordpress.com/2010/09/16/on-boolean-datatype-in-sql-and-beyond/ - Jeffrey Kemp
18
@JeffreyKemp 这篇博客毫无意义。仅仅因为一些布尔值可以基于表中的其他字段计算得出,并不意味着所有布尔字段都可以被计算。例如,“is_trusted_customer”字段,只有在人类决定“我信任那个人”的情况下才为真。 - Jay
4
恭喜你,你刚刚重新发明了C语言风格的布尔值(使用整数而不是布尔类型)。在编码中我们应该回到那种方式。另外,如果表列和结果列(从SELECT中)之间共享数据类型,则该论点完全崩溃,因为有时将布尔值作为计算结果返回是绝对合适的,即使考虑到其他论点的情况。 - jpmc26
4
是的。更多像布尔值这样的数据类型会给予更精确的表达能力 - 在这方面我不会反驳。我只是很高兴我们至少有一个“日期”类型 - 想象一下如果一直处理日期的字符串表示 :) - Jeffrey Kemp
显示剩余12条评论
11个回答

-3
DECLARE
error_flag  BOOLEAN := false;
BEGIN

error_flag := true;
--error_flag := 13;--expression is of wrong type

  IF error_flag THEN 

UPDATE table_a SET id= 8 WHERE id = 1;

END IF;
END;

这个例子是有效的。我还注意到在PL/SQL中只能使用布尔类型。在SQL中调用布尔类型会导致无效的关系运算符错误。 - Richard Pascual

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接