I Oracle er BITAND()
funktion returnerer en bitvis AND
af sine to argumenter.
Syntaks
Syntaksen ser sådan ud:
BITAND(expr1, expr2)
Hvor expr1
og expr2
er af typen NUMBER
.
Argumenterne skal være i området -(2) .. ((2)-1). Hvis et argument er uden for dette område, er resultatet udefineret.
Også, hvis et af argumenterne er NULL
, resultatet er NULL
.
Eksempel
Her er et eksempel:
SELECT BITAND(6, 3)
FROM DUAL;
Resultat:
BITAND(6,3) ______________ 2
Ikke-numeriske argumenter
Her er, hvad der sker, når vi angiver et ikke-numerisk argument, der ikke kan konverteres til en numerisk datatype:
SELECT BITAND('six', 3)
FROM DUAL;
Resultat:
Error starting at line : 1 in command - SELECT BITAND('six',3) FROM DUAL Error report - ORA-01722: invalid number
Nul-værdier
Hvis nogen af argumenterne er null
, resultatet er null
:
SET NULL 'null';
SELECT
BITAND(null, 3),
BITAND(6, null)
FROM DUAL;
Resultat:
BITAND(NULL,3) BITAND(6,NULL) _________________ _________________ null null
Som standard returnerer SQLcl og SQL*Plus et tomt mellemrum, når null
opstår som et resultat af en SQL SELECT
udmelding.
Du kan dog bruge SET NULL
for at angive en anden streng, der skal returneres. Her specificerede jeg, at strengen null
skal returneres.
Forkert antal argumenter
Kalder BITAND()
uden at sende nogen argumenter returnerer en fejl:
SELECT BITAND()
FROM DUAL;
Resultat:
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:
Og at sende det forkerte antal argumenter resulterer i en fejl:
SELECT BITAND(1, 2, 3)
FROM DUAL;
Resultat:
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: