Oracle如何进行逻辑运算:& | ^
oracle提供了UTL_RAW包(utlraw.sql),其中包含几个位运算函数:
BIT_AND、BIT_OR、BIT_XOR、BIT_COMPLEMENT
另外,Oracle7.0以后,可以使用BITAND用于求两个整数的逻辑与,如
SQL> select bitand(49,54)+0 from dual;
BITAND(49,54)+0
---------------
48
根据这个函数可以写出逻辑或与逻辑异或:
function bitor(p_dec1 number, p_dec2 number) return number is
begin
return p_dec1-bitand(p_dec1,p_dec2)+p_dec2;
end;
function bitxor(p_dec1 number, p_dec2 number) return number is
begin
return bitor(p_dec1,p_dec2)-bitand(p_dec1,p_dec2);
-- or you could use: return p_dec1-2*bitand(p_dec1,p_dec2)+p_dec2;
end;