Oracle は、バイナリ型を含む複数のデータ型をサポートする強力なリレーショナル データベース管理システムです。 Oracle では、多くの場合、バイナリ データを 16 進数に変換する必要があります。この記事では、Oracle でこの変換を実行する方法について説明します。
1. TO\_RAW 関数を使用してバイナリ データを 16 進数に変換する
Oracle では、TO\_RAW 関数を使用してバイナリ データを RAW 型に変換し、RAWTOHEX を使用できます。 RAW 型を変換する関数 16 進数の文字列に変換します。たとえば、次の SQL ステートメントはバイナリ データを 16 進数に変換します:
SELECT RAWTOHEX(TO_RAW('Hello, World!')) as HEX_VALUE FROM DUAL;
上記の SQL ステートメントを実行すると、次の結果が得られます:
48454C4C4F2C20576F726C6421
この結果は、「Hello, World!」です。 " を 16 進数値に変換します。
2. UTL\_RAW パッケージを使用してバイナリ データを 16 進数に変換する
TO\_RAW および RAWTOHEX 関数の使用に加えて、Oracle は UTL\_RAW パッケージも提供しています。便利 バイナリデータを16進数に変換します。
UTL\_RAW パッケージには 3 つの関数が提供されています:
たとえば、次の SQL ステートメントは UTL\_RAW パッケージを使用してバイナリ データを 16 進数に変換します。
SELECT UTL_RAW.CAST_TO_RAW('Hello, World!') as RAW_VALUE, UTL_RAW.CAST_TO_RAW('Hello, World!') as HEX_VALUE from DUAL;
上記の SQL ステートメントを実行すると、次の結果が得られます。
48454C4C4F2C20576F726C6421,0x48454C4C4F2C20576F726C6421
このうち、RAW\_VALUE列は「Hello, World!」をRAW型に変換した結果、HEX\_VALUE列はRAW型を16進文字列に変換した結果を示します。 。
UTL\_RAW パッケージを使用して 16 進数変換を実行する場合、入力データは偶数桁の 16 進数文字列である必要があることに注意してください。たとえば、次の SQL ステートメントは例外をスローします。
SELECT UTL_RAW.HEX_TO_RAW('48454C4C4F2C20576F726C642') from DUAL;
"48454C4C4F2C20576F726C642" は奇数桁の 16 進文字列であるためです。正しい書き方は次のとおりです:
SELECT UTL_RAW.HEX_TO_RAW('48454C4C4F2C20576F726C6421') from DUAL;
3. 概要
Oracle ではバイナリ データを 16 進数に変換する方法が多数あります。TO\_RAW および RAWTOHEX を使用できます。 UTL\_RAW パッケージの関連関数も使用できます。いずれの方法でも、この変換は簡単に実行できます。
以上がOracle でこの変換を行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。