其实位操作对于oracle数据类型来说,有些格格不入.故oracle本来就没有提供位操作符.
create function bitor(p_dec1 number, p_dec2 number) return number is
begin
return p_dec1-bitand(p_dec1,p_dec2)+p_dec2;
end;
create 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;