在Oracle数据库中是否存在布尔类型,类似于Ms SQL Server中的BIT数据类型?
当前回答
而不是SQL级别,这很遗憾 但是在PLSQL中有一个
其他回答
而不是SQL级别,这很遗憾 但是在PLSQL中有一个
根据Ammoq和kupa的回答,我们使用默认为0的数字(1),不允许为空。
下面是一个add列来演示:
ALTER TABLE YourSchema.YourTable ADD (ColumnName NUMBER(1) DEFAULT 0 NOT NULL);
希望这能帮助到一些人。
不仅在Oracle的SQL(不是PL/SQL)中缺少布尔数据类型,而且他们也没有关于使用什么来代替的明确建议。请看asktom的这个帖子。从推荐CHAR(1)当有人指出“Y”/“N”取决于英语时,他们会切换到NUMBER(1) 0/1,而例如,德国程序员可能会使用“J”/“N”。
最糟糕的是,他们为这个愚蠢的决定辩护,就像他们为“=NULL愚蠢”辩护一样。
一个常见的节省空间的技巧是将布尔值存储为Oracle CHAR,而不是NUMBER:
在pl/sql中有一个布尔类型,但没有一个可以用作列的数据类型。