Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Funkcja HEXTORAW() w Oracle

W bazie danych Oracle HEXTORAW() funkcja konwertuje wartość szesnastkową na wartość surową.

Składnia

Składnia wygląda tak:

HEXTORAW(char)

Gdzie char może być dowolnym z CHAR , VARCHAR2 , NCHAR lub NVARCHAR2 typy danych.

Przykład

Oto przykład:

SELECT HEXTORAW('74a5cfe') FROM DUAL;

Wynik:

074A5CFE

Możemy użyć DUMP() funkcja do sprawdzenia typu danych zwracanej wartości:

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

Wynik:

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

Typ=23 mówi nam, że zwracana wartość jest typu 23, który jest identyfikatorem typu dla RAW .

Dla jasności, oto przykład porównujący ciąg szesnastkowy i surową wartość:

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

Wynik:

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

Wartość szesnastkowa jest typu 96, który jest identyfikatorem typu dla CHAR i NCHAR .

Znaki inne niż szesnastkowe

Przekazanie wartości, która nie jest wartością szesnastkową, skutkuje błędem.

Przykład:

SELECT HEXTORAW('z') FROM DUAL;

Wynik:

Error report -
ORA-01465: invalid hex number

Argument zerowy

Jeśli argument jest null , wynik to null :

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

Wynik:

null

Domyślnie SQLcl i SQL*Plus zwracają pustą spację za każdym razem, gdy w wyniku SELECT wystąpi wartość null oświadczenie.

Możesz jednak użyć SET NULL aby określić inny ciąg do zwrócenia. Tutaj określiłem, że ciąg null należy zwrócić.

Nieprawidłowa liczba argumentów

Wywołanie HEXTORAW() bez żadnych argumentów powoduje błąd:

SELECT HEXTORAW()
FROM DUAL;

Wynik:

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

Przekazywanie zbyt wielu argumentów również skutkuje błędem:

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

Wynik:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Różnica w obsłudze przestrzeni między Oracle a SQL Server

  2. Zapytanie SQL w celu zwinięcia zduplikowanych wartości według zakresu dat

  3. Etap APPL_TOP w aplikacjach Oracle R12

  4. Jak wykorzystać istniejącą sekwencję Oracle do wygenerowania identyfikatora w stanie hibernacji?

  5. Pozbądź się zduplikowanych wartości z jednej kolumny w dwóch kolumnach wybierz