在Oracle数据库中是否存在布尔类型,类似于Ms SQL Server中的BIT数据类型?
当前回答
一个常见的节省空间的技巧是将布尔值存储为Oracle CHAR,而不是NUMBER:
其他回答
不。
可以使用:
IS_COOL NUMBER(1,0)
1 - true
0 - false
——享受甲骨文
或者使用这里描述的字符Y/N
而不是SQL级别,这很遗憾 但是在PLSQL中有一个
在pl/sql中有一个布尔类型,但没有一个可以用作列的数据类型。
只是因为还没有人提到它:使用RAW(1)似乎也是常见的实践。
不仅在Oracle的SQL(不是PL/SQL)中缺少布尔数据类型,而且他们也没有关于使用什么来代替的明确建议。请看asktom的这个帖子。从推荐CHAR(1)当有人指出“Y”/“N”取决于英语时,他们会切换到NUMBER(1) 0/1,而例如,德国程序员可能会使用“J”/“N”。
最糟糕的是,他们为这个愚蠢的决定辩护,就像他们为“=NULL愚蠢”辩护一样。
推荐文章
- django test app error -在创建测试数据库时出现错误:创建数据库的权限被拒绝
- MySql: Tinyint (2) vs Tinyint(1) -有什么不同?
- 在Android SQLite中处理日期的最佳方法
- 如何在MySQL表中移动列?
- 在SQL Server中查找重复的行
- 从DateTime中提取小时(SQL Server 2005)
- LEFT OUTER JOIN如何返回比左表中存在的记录更多的记录?
- 如何用SQL语句计算百分比
- Postgres唯一约束与索引
- SQL Server动态PIVOT查询?
- MySQL对重复键更新在一个查询中插入多行
- 使用{merge: true}设置的Firestore与更新之间的差异
- 向现有表添加主键
- mysql_connect():[2002]没有这样的文件或目录(试图通过unix:///tmp/mysql.sock连接)在
- 使用电子邮件地址为主键?