Trong Máy chủ SQL Tôi đã sử dụng biểu tượng ^
, tuy nhiên điều đó dường như không hoạt động trong Oracle.Độc quyền bitwise HOẶC trong Oracle
Làm cách nào để thực hiện một độc quyền bit một cách độc quyền OR
trong Oracle?
Trong Máy chủ SQL Tôi đã sử dụng biểu tượng ^
, tuy nhiên điều đó dường như không hoạt động trong Oracle.Độc quyền bitwise HOẶC trong Oracle
Làm cách nào để thực hiện một độc quyền bit một cách độc quyền OR
trong Oracle?
Từ các tài liệu:
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;
Để thấy rằng những công việc, hãy làm theo logic chỉ với 0s và 1s cho đầu vào, và sau đó không phải là không có mượn hoặc sâu răng.
- MarkusQ
Không, bài viết mô tả cách tạo UDF cho BIT_OR, đây không phải là biểu thức chuẩn. – Quassnoi
Được rồi ... Cảm ơn –
Có nhà điều hành BITAND:
select bitand(49,54)+0 from dual;
Bạn có thể build up the other operators từ nó; và here.
Tôi tin rằng bạn không còn cần +0 để lừa cơ sở dữ liệu nữa. – orbfish
Không có cách nào dễ dàng.
Bạn có thể đúc chuỗi HEX
giá trị vào RAW
giá trị và sử dụng UTL_RAW
:
SELECT UTL_RAW.bit_xor(HEXTORAW(TO_CHAR(1, 'FMX')), HEXTORAW(TO_CHAR(2, 'FMX')))
FROM dual
---
03
xor = p1-2 * bit và (p1, p2) + p2 – Akvel