为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

小唯快跑啊 2019-11-25 16:00:55
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愚蠢一样捍卫这个愚蠢的决定。


查看完整回答
反对 回复 2019-11-25
?
繁星淼淼

TA贡献1775条经验 获得超11个赞

根据Ammoq和kupa的答案,我们使用number(1),默认值为0,并且不允许为空。


这是一个添加列来演示:


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

希望这对某人有帮助。


查看完整回答
反对 回复 2019-11-25
?
慕桂英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' ));


查看完整回答
反对 回复 2019-11-25
  • 3 回答
  • 0 关注
  • 1486 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信