Bitwise حصريًا أو في Oracle
-
03-07-2019 - |
سؤال
في خادم قاعدة البيانات لقد تم استخدام ^
الرمز، ولكن يبدو أن هذا لا يعمل وحي.
كيف أفعل حصريا bitwise 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 فقط للإدخال، ثم لا يوجد أي استعارة أو تسوس.
-- ماركوس س
نصائح أخرى
ليس هناك طريقة سهلة.
يمكنك إلقاء السلسلة HEX
القيم في RAW
القيم والاستخدام UTL_RAW
:
SELECT UTL_RAW.bit_xor(HEXTORAW(TO_CHAR(1, 'FMX')), HEXTORAW(TO_CHAR(2, 'FMX')))
FROM dual
---
03
لا تنتمي إلى StackOverflow