首页 > 解决方案 > Char(1) vs Number(2) 在 oracle 中性能更好

问题描述

要求表中有真或假列。Oracle 不允许列的布尔/位数据类型。所以我们可以通过两个选项 char(1) 或数字数据类型来做到这一点,并将 1 和 0 存储为数字或字符,如“1”或“0”。

在此表上使用 where 条件在此列上执行选择时,并在其上创建索引,哪种数据类型更适合使用。字符或数字。

或者没关系。请对此有所了解。

标签: sqloracleoracle11g

解决方案


If you store as NUMBER(1) as 0 and 1 you can do Binary operations of Boolean Truth values using BITAND

and the below implementation of bitor

CREATE OR REPLACE FUNCTION bitor(x NUMBER, y NUMBER) RETURN NUMBER 
DETERMINISTIC
IS
BEGIN
RETURN x - bitand(x, y) + y;
END;

推荐阅读