sql >> Database teknologi >  >> RDS >> Oracle

BITAND() Funktion i Oracle

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:

  1. Installation af Percona XtraDB Cluster på CentOS 7

  2. Jeg forstår ikke Collation? (Mysql, RDBMS, tegnsæt)

  3. Tjek, om en tabel har en TIMESTAMP-kolonne i SQL Server med OBJECTPROPERTY()

  4. Få RÆKKER som KOLONNER (SQL Server dynamisk PIVOT-forespørgsel)