Вопрос

В SQL-сервер Я использовал ^ символ, однако, похоже, это не работает в Оракул.

Как мне сделать побитовое исключение OR в Оракле?

Это было полезно?

Решение

Из документов:

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;

Чтобы убедиться, что это работает, следуйте логике, используя на входе только 0 и 1, а не отсутствие заимствований или кариеса.

-- МаркусКью

Другие советы

Есть оператор 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top