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

HEXTORAW() Funktion i Oracle

I Oracle Database er HEXTORAW() funktion konverterer hexadecimal til en rå værdi.

Syntaks

Syntaksen ser sådan ud:

HEXTORAW(char)

Hvor char kan være en hvilken som helst af CHAR , VARCHAR2 , NCHAR eller NVARCHAR2 datatyper.

Eksempel

Her er et eksempel:

SELECT HEXTORAW('74a5cfe') FROM DUAL;

Resultat:

074A5CFE

Vi kan bruge DUMP() funktion for at finde ud af datatypen for returværdien:

SELECT DUMP(HEXTORAW('74a5cfe')) FROM DUAL;

Resultat:

Typ=23 Len=4: 7,74,92,254

Typ=23 fortæller os, at returværdien er af type 23, som er type-id'et for RAW .

Bare for at være klar, her er et eksempel, der sammenligner den hexadecimale streng og den rå værdi:

SELECT 
    DUMP('123') AS "r1",
    DUMP(HEXTORAW('123')) AS "r2"
FROM DUAL;

Resultat:

                       r1                    r2 
_________________________ _____________________ 
Typ=96 Len=3: 49,50,51    Typ=23 Len=2: 1,35   

Den hexadecimale værdi er af typen 96, som er type-id'et for CHAR og NCHAR .

Ikke-hex-tegn

Hvis du sender en værdi, der ikke er en hexadecimal værdi, resulterer det i en fejl.

Eksempel:

SELECT HEXTORAW('z') FROM DUAL;

Resultat:

Error report -
ORA-01465: invalid hex number

Nul-argument

Hvis argumentet er null , resultatet er null :

SET NULL 'null';
SELECT HEXTORAW(null)
FROM DUAL;

Resultat:

null

Som standard returnerer SQLcl og SQL*Plus et tomt mellemrum, når der opstår en null-værdi som et resultat af en SQL SELECT erklæring.

Du kan dog bruge SET NULL for at angive en anden streng, der skal returneres. Her specificerede jeg, at strengen null skal returneres.

Ugyldigt argumentantal

Kalder HEXTORAW() uden nogen argumenter resulterer i en fejl:

SELECT HEXTORAW()
FROM DUAL;

Resultat:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

Og at sende for mange argumenter resulterer også i en fejl:

SELECT HEXTORAW('a', 'b')
FROM DUAL;

Resultat:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

  1. Installation af PostgreSQL på Ubuntu til Ruby on Rails

  2. Antal fredage mellem to datoer

  3. Ødelæggelse af en Postgres DB på Heroku

  4. SQL Server Parallel Backup Gendannelse -1