Oracle数据库中是否有任何布尔类型,类似于BITMs SQL Server中的数据类型?
3 回答
ITMISS
TA贡献1871条经验 获得超8个赞
Oracle的SQL(不是PL / SQL)不仅缺少布尔数据类型,而且对于使用什么数据,他们也没有明确的建议。请参见asktom上的该线程。从推荐CHAR(1) 'Y'/'N'它们切换到NUMBER(1) 0/1有人指出'Y'/'N'依赖英语的时间,而例如德国程序员可能会改'J'/'N'而使用。
最糟糕的是,他们像捍卫''=NULL愚蠢一样捍卫这个愚蠢的决定。
繁星淼淼
TA贡献1775条经验 获得超11个赞
根据Ammoq和kupa的答案,我们使用number(1),默认值为0,并且不允许为空。
这是一个添加列来演示:
ALTER TABLE YourSchema.YourTable ADD (ColumnName NUMBER(1) DEFAULT 0 NOT NULL);
希望这对某人有帮助。
慕桂英4014372
TA贡献1871条经验 获得超13个赞
不,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' ));
添加回答
举报
0/150
提交
取消