Побитовое исключающее ИЛИ в Oracle
на SQL Server Я использую ^
символ, однако это, похоже, не работает в Oracle.
Как сделать побитовый эксклюзив OR
в Oracle?
3 ответов
документы:
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
существует оператор BITAND:
select bitand(49,54)+0 from dual;
вы можете создайте другие операторы; и здесь.
нет простого способа.
вы можете бросить строку HEX
значения RAW
значения и использовать UTL_RAW
:
SELECT UTL_RAW.bit_xor(HEXTORAW(TO_CHAR(1, 'FMX')), HEXTORAW(TO_CHAR(2, 'FMX')))
FROM dual
---
03