Oracle中的按位异或

时间:2009-03-03 00:11:47

标签: database oracle stored-procedures bit-manipulation

SQL Server 中,我一直使用^符号,但这似乎不适用于 Oracle

如何在Oracle中执行按位独占OR

3 个答案:

答案 0 :(得分:7)

来自文档:

function bitor(p1 number, p2 number) return number is
begin
  return p1-bitand(p1,p2)+p2;
end;

function bitxor(p1 number, p2 number) return number is
begin
  return bitor(p1,p2)-bitand(p1,p2);
end;

要看到这些工作,请按照0s和1s的逻辑进行输入,然后不要说没有借用或龋齿。

- MarkusQ

答案 1 :(得分:5)

有BITAND操作符:

select bitand(49,54)+0 from dual;

你可以build up the other operators来自它;和here

答案 2 :(得分:2)

没有简单的方法。

您可以将字符串HEX值转换为RAW值并使用UTL_RAW

SELECT UTL_RAW.bit_xor(HEXTORAW(TO_CHAR(1, 'FMX')), HEXTORAW(TO_CHAR(2, 'FMX')))
FROM dual

---
 03