Trong Cơ sở dữ liệu Oracle, BIT_TO_NUM()
hàm chuyển đổi một vectơ bit thành số tương đương của nó.
Cú pháp
Cú pháp như sau:
BIN_TO_NUM(expr [, expr ]... )
Trong đó mỗi expr
đại diện cho một bit trong vector bit.
Đối số / s có thể là bất kỳ kiểu dữ liệu số nào hoặc bất kỳ kiểu dữ liệu không phải số nào có thể được chuyển đổi hoàn toàn thành NUMBER
. Mỗi biểu thức phải đánh giá thành 0
hoặc 1
.
Ví dụ
Đây là một ví dụ:
SELECT BIN_TO_NUM(1)
FROM DUAL;
Kết quả:
1
Trong trường hợp này, giá trị nhị phân 1 đại diện cho số 1.
Đây là một cái khác:
SELECT BIN_TO_NUM(1, 0)
FROM DUAL;
Kết quả:
2
Bây giờ chúng ta hãy làm một con số lớn hơn nhiều:
SELECT BIN_TO_NUM(1, 0, 1, 1, 1, 0)
FROM DUAL;
Kết quả:
46
Đối số không hợp lệ
Đang gọi BIN_TO_NUM()
với các đối số không phân giải thành NUMBER
dẫn đến lỗi:
SELECT BIN_TO_NUM('Cat')
FROM DUAL;
Kết quả:
ORA-01722: invalid number
Giá trị rỗng
Nếu bất kỳ đối số nào null
, một lỗi "đối số bất hợp pháp" xảy ra:
SELECT BIN_TO_NUM(null)
FROM DUAL;
Kết quả:
ORA-01760: illegal argument for function
Không có đối số?
Đang gọi BIN_TO_NUM()
không có bất kỳ đối số nào trả về 0
(không):
SELECT BIN_TO_NUM()
FROM DUAL;
Kết quả:
0