ホームページ  >  記事  >  運用・保守  >  Oracle でこの変換を行う方法

Oracle でこの変換を行う方法

PHPz
PHPzオリジナル
2023-04-17 09:48:511820ブラウズ

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 つの関数が提供されています:

  1. CAST\_TO\_RAW: 文字列を RAW タイプに変換します。
  2. CAST\_FROM\_RAW: RAW タイプを文字列に変換します。
  3. HEX\_TO\_RAW: 16 進数の文字列を RAW 型に変換します。

たとえば、次の 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。