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


当前回答

不。

可以使用:

IS_COOL NUMBER(1,0)

1 - true
0 - false

——享受甲骨文

或者使用这里描述的字符Y/N

其他回答

在pl/sql中有一个布尔类型,但没有一个可以用作列的数据类型。

根据Ammoq和kupa的回答,我们使用默认为0的数字(1),不允许为空。

下面是一个add列来演示:

ALTER TABLE YourSchema.YourTable ADD (ColumnName NUMBER(1) DEFAULT 0 NOT NULL);

希望这能帮助到一些人。

不。

可以使用:

IS_COOL NUMBER(1,0)

1 - true
0 - false

——享受甲骨文

或者使用这里描述的字符Y/N

一个常见的节省空间的技巧是将布尔值存储为Oracle CHAR,而不是NUMBER:

不,在Oracle数据库中没有布尔类型,但是你可以这样做:

您可以在列上放置检查约束。

如果你的表没有检查列,你可以添加它:

ALTER TABLE table_name
ADD column_name_check char(1) DEFAULT '1';

当添加寄存器时,默认情况下这一列为1。

这里你设置了一个限制列值的检查,只设置1或0

ALTER TABLE table_name ADD
CONSTRAINT name_constraint 
column_name_check (ONOFF in ( '1', '0' ));