質問

SQL Server では ^ シンボルを使用していますが、 Oracle では機能しないようです。

Oracleでビット単位の排他的な 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のみを使用してロジックを実行します。借用やう蝕はありません。

-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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top