Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Hàm BITAND () trong Oracle

Trong Oracle, BITAND() hàm trả về một bitwise AND trong số hai đối số của nó.

Cú pháp

Cú pháp như sau:

BITAND(expr1, expr2)

Ở đâu expr1 expr2 thuộc loại NUMBER .

Các đối số phải nằm trong khoảng - (2) .. ((2) -1). Nếu một đối số nằm ngoài phạm vi này, kết quả là không xác định.

Ngoài ra, nếu một trong hai đối số là NULL , kết quả là NULL .

Ví dụ

Đây là một ví dụ:

SELECT BITAND(6, 3)
FROM DUAL;

Kết quả:

   BITAND(6,3) 
______________ 
             2

Đối số không phải dạng số

Đây là những gì sẽ xảy ra khi chúng tôi cung cấp đối số không phải là số không thể chuyển đổi thành kiểu dữ liệu số:

SELECT BITAND('six', 3)
FROM DUAL;

Kết quả:

Error starting at line : 1 in command -
SELECT BITAND('six',3)
FROM DUAL
Error report -
ORA-01722: invalid number

Giá trị rỗng

Nếu bất kỳ đối số nào là null , kết quả là null :

SET NULL 'null';

SELECT 
    BITAND(null, 3),
    BITAND(6, null)
FROM DUAL;

Kết quả:

   BITAND(NULL,3)    BITAND(6,NULL) 
_________________ _________________ 
             null              null 

Theo mặc định, SQLcl và SQL * Plus trả về một khoảng trống bất cứ khi nào null xảy ra do một SELECT trong SQL tuyên bố.

Tuy nhiên, bạn có thể sử dụng SET NULL để chỉ định một chuỗi khác được trả về. Ở đây tôi đã chỉ định rằng chuỗi null nên được trả lại.

Số lượng đối số không chính xác

Đang gọi BITAND() mà không chuyển bất kỳ đối số nào sẽ trả về lỗi:

SELECT BITAND()
FROM DUAL;

Kết quả:

Error starting at line : 1 in command -
SELECT BITAND()
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"
*Cause:    
*Action:

Và việc chuyển sai số đối số dẫn đến lỗi:

SELECT BITAND(1, 2, 3)
FROM DUAL;

Kết quả:

Error starting at line : 1 in command -
SELECT BITAND(1, 2, 3)
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"
*Cause:    
*Action:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. BDE vs ADO ở Delphi

  2. Làm thế nào để tìm được nhân viên có mức lương cao thứ hai?

  3. Các câu hỏi hàng đầu về JAVA / JRE trong Ứng dụng Oracle

  4. Chương trình PL / SQL để in chi tiết nhân viên

  5. Làm thế nào để tạo thư mục trong Oracle?