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"