sql >> データベース >  >> RDS >> Oracle

OracleのHEXTORAW()関数

    Oracle Databaseでは、HEXTORAW() 関数は16進数を生の値に変換します。

    構文

    構文は次のようになります:

    HEXTORAW(char)

    charの場所 CHARのいずれかになります 、VARCHAR2NCHAR 、または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"

    1. ServiceNowとOracleIdentityCloud Service(IDCS)の統合

    2. MySQLエラー1264:列の値が範囲外です

    3. さまざまなエラー処理手法のパフォーマンスへの影響

    4. SQLiteはUNIXEPOCH()関数を導入します