В Oracle, BITAND()
функцията връща побитово AND
от двата му аргумента.
Синтаксис
Синтаксисът е така:
BITAND(expr1, expr2)
Където expr1
и expr2
са от тип NUMBER
.
Аргументите трябва да са в диапазона -(2) .. ((2)-1). Ако даден аргумент е извън този диапазон, резултатът е недефиниран.
Също така, ако някой от аргументите е NULL
, резултатът е NULL
.
Пример
Ето един пример:
SELECT BITAND(6, 3)
FROM DUAL;
Резултат:
BITAND(6,3) ______________ 2
Нечислови аргументи
Ето какво се случва, когато предоставим нечислов аргумент, който не може да бъде преобразуван в числов тип данни:
SELECT BITAND('six', 3)
FROM DUAL;
Резултат:
Error starting at line : 1 in command - SELECT BITAND('six',3) FROM DUAL Error report - ORA-01722: invalid number
Нулеви стойности
Ако някой от аргументите е null
, резултатът е null
:
SET NULL 'null';
SELECT
BITAND(null, 3),
BITAND(6, null)
FROM DUAL;
Резултат:
BITAND(NULL,3) BITAND(6,NULL) _________________ _________________ null null
По подразбиране SQLcl и SQL*Plus връщат празно пространство всеки път, когато null
възниква в резултат на SQL SELECT
изявление.
Можете обаче да използвате SET NULL
за да посочите различен низ, който да бъде върнат. Тук посочих, че низът null
трябва да бъдат върнати.
Неправилен брой аргументи
Извикване на BITAND()
без подаване на аргументи връща грешка:
SELECT BITAND()
FROM DUAL;
Резултат:
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:
И предаването на грешен брой аргументи води до грешка:
SELECT BITAND(1, 2, 3)
FROM DUAL;
Резултат:
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: