2009-03-03 22 views
7

En SQL Server He estado usando el símbolo ^, sin embargo, que no parece bit a bit para trabajar en Oracle.O exclusivo en Oracle

¿Cómo puedo hacer una oferta exclusiva de bit a bit OR en Oracle?

Respuesta

7

A partir de los documentos:

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; 

ver que estos trabajos, sigue la lógica con sólo 0s y 1s para entrada, y luego no es que no hay préstamos o caries.

- MarkusQ

+1

xor = p1-2 * bitand (p1, p2) + p2 – Akvel

2

No hay una manera fácil.

Puedes lanzar cadena HEX valores en RAW valores y utilizar UTL_RAW:

SELECT UTL_RAW.bit_xor(HEXTORAW(TO_CHAR(1, 'FMX')), HEXTORAW(TO_CHAR(2, 'FMX'))) 
FROM dual 

--- 
03 
Cuestiones relacionadas