-- BITOR
CREATE OR REPLACE FUNCTION RIVUS.BITOR( P_BITS1 IN NATURAL, P_BITS2 IN NATURAL )
RETURN NATURAL
IS
BEGIN
RETURN UTL_RAW.CAST_TO_BINARY_INTEGER(
UTL_RAW.BIT_OR(
UTL_RAW.CAST_FROM_BINARY_INTEGER(P_BITS1),
UTL_RAW.CAST_FROM_BINARY_INTEGER(P_BITS2)
)
);
END;
/
-- BITXOR
CREATE OR REPLACE FUNCTION RIVUS.BITXOR( P_BITS1 IN NATURAL, P_BITS2 IN NATURAL )
RETURN NATURAL
IS
BEGIN
RETURN UTL_RAW.CAST_TO_BINARY_INTEGER(
UTL_RAW.BIT_XOR(
UTL_RAW.CAST_FROM_BINARY_INTEGER(P_BITS1),
UTL_RAW.CAST_FROM_BINARY_INTEGER(P_BITS2)
)
);
END;
/