SQL Serverではシンボルを使用していますが、 Oracle^
では機能しないようです。
OR
Oracleでビット単位の排他を行うにはどうすればよいですか?
SQL Serverではシンボルを使用していますが、 Oracle^
では機能しないようです。
OR
Oracleでビット単位の排他を行うにはどうすればよいですか?
ドキュメントから:
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 のみを使用してロジックに従い、ボローやカリエスがないことを確認します。
-- マーカスQ
簡単な方法はありません。
HEX
文字列値を値にキャストして、次RAW
を使用できますUTL_RAW
。
SELECT UTL_RAW.bit_xor(HEXTORAW(TO_CHAR(1, 'FMX')), HEXTORAW(TO_CHAR(2, 'FMX')))
FROM dual
---
03