sql >> Databáze >  >> RDS >> Oracle

Funkce HEXTORAW() v Oracle

V databázi Oracle je to HEXTORAW() funkce převede hexadecimální hodnotu na nezpracovanou hodnotu.

Syntaxe

Syntaxe vypadá takto:

HEXTORAW(char)

Kde char může být kterýkoli z CHAR , VARCHAR2 , NCHAR nebo NVARCHAR2 datové typy.

Příklad

Zde je příklad:

SELECT HEXTORAW('74a5cfe') FROM DUAL;

Výsledek:

074A5CFE

Můžeme použít DUMP() funkce pro zjištění datového typu návratové hodnoty:

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

Výsledek:

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

Typ=23 říká nám, že návratová hodnota je typu 23, což je ID typu pro RAW .

Aby bylo jasno, zde je příklad, který porovnává hexadecimální řetězec a nezpracovanou hodnotu:

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

Výsledek:

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

Hexadecimální hodnota je typu 96, což je ID typu pro CHAR a NCHAR .

Nehexadecimální znaky

Předání hodnoty, která není hexadecimální, způsobí chybu.

Příklad:

SELECT HEXTORAW('z') FROM DUAL;

Výsledek:

Error report -
ORA-01465: invalid hex number

Nulový argument

Pokud je argument null , výsledkem je null :

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

Výsledek:

null

Ve výchozím nastavení vrátí SQLcl a SQL*Plus prázdné místo, kdykoli se v důsledku příkazu SQL SELECT objeví hodnota null prohlášení.

Můžete však použít SET NULL určit jiný řetězec, který má být vrácen. Zde jsem uvedl, že řetězec null by měl být vrácen.

Neplatný počet argumentů

Volání HEXTORAW() bez jakýchkoli argumentů vede k chybě:

SELECT HEXTORAW()
FROM DUAL;

Výsledek:

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

A předání příliš mnoha argumentů také vede k chybě:

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

Výsledek:

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

  1. Možnosti cloudového zálohování pro databáze MySQL a MariaDB

  2. Jak vytvořit více jeden k jednomu

  3. Vložte více záznamů do oracle

  4. Vnitřní části sedmi druhů SQL Server – Část 1