Oracle
 sql >> база данни >  >> RDS >> Oracle

HEXTORAW() Функция в Oracle

В Oracle Database, HEXTORAW() функция преобразува шестнадесетична в необработена стойност.

Синтаксис

Синтаксисът е така:

HEXTORAW(char)

Където char може да бъде всеки от CHAR , VARCHAR2 , NCHAR или NVARCHAR2 типове данни.

Пример

Ето един пример:

SELECT HEXTORAW('74a5cfe') FROM DUAL;

Резултат:

074A5CFE

Можем да използваме DUMP() функция, за да разберете типа данни на връщаната стойност:

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

Резултат:

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

Typ=23 ни казва, че връщаната стойност е от тип 23, което е идентификаторът на типа за RAW .

Само за да стане ясно, ето пример, който сравнява шестнадесетичния низ и необработената стойност:

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

Резултат:

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

Шестнадесетичната стойност е от тип 96, което е идентификаторът на типа за CHAR и NCHAR .

Не шестнадесетични знаци

Предаването на стойност, която не е шестнадесетична, води до грешка.

Пример:

SELECT HEXTORAW('z') FROM DUAL;

Резултат:

Error report -
ORA-01465: invalid hex number

Нулев аргумент

Ако аргументът е null , резултатът е null :

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

Резултат:

null

По подразбиране SQLcl и SQL*Plus връщат празно пространство, когато се появи нулева стойност в резултат на SQL SELECT изявление.

Въпреки това, можете да използвате SET NULL за да посочите различен низ, който да бъде върнат. Тук посочих, че низът null трябва да бъдат върнати.

Невалиден брой аргументи

Извикване на HEXTORAW() без никакви аргументи води до грешка:

SELECT HEXTORAW()
FROM DUAL;

Резултат:

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

И предаването на твърде много аргументи също води до грешка:

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

Резултат:

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. Подреждане на редове по подразбиране за заявка за избор в oracle

  2. 2 начина за свързване на низ и число в Oracle

  3. NLS_COLLATION_ID() Функция в Oracle

  4. Как да създадете процедура вътре в пакет в Oracle

  5. 12c Редактиране на данни