Oracle Databaseでは、HEXTORAW()
関数は16進数を生の値に変換します。
構文
構文は次のようになります:
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
のタイプIDです。 。
明確にするために、16進文字列と生の値を比較する例を次に示します。
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
16進値はタイプ96で、これはCHAR
のタイプIDです。 およびNCHAR
。
非16進文字
16進値ではない値を渡すと、エラーが発生します。
例:
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
の結果としてnull値が発生するたびに空白を返します。 ステートメント。
ただし、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"