In SQL Server I have been using the ^ symbol however that doesn't seem to work in Oracle. How do I do a bitwise exclusive OR in Oracle??
Thanks
From stackoverflow
-
Here's an article about creating a BIT_OR method. (thanks Quassnoi)
Quassnoi : No, the article describes how to make an UDF for BIT_OR, it's not a standard expression.Ólafur Waage : Alright... Thanks -
There is the BITAND operator:
select bitand(49,54)+0 from dual;You can build up the other operators from it; and here.
-
There's no easy way.
You may cast string
HEXvalues intoRAWvalues and useUTL_RAW:SELECT UTL_RAW.bit_xor(HEXTORAW(TO_CHAR(1, 'FMX')), HEXTORAW(TO_CHAR(2, 'FMX'))) FROM dual --- 03 -
From the docs:
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;To see that these work, follow the logic with just 0s and 1s for input, and then not that there are no borrow or caries.
-- MarkusQ
0 comments:
Post a Comment