HEX スカラー関数
HEX 関数は、値の 16 進表記を文字ストリングとして戻します。
スキーマは SYSIBM です。
- expression
- XML 以外の組み込みデータ・タイプの、最大長 16 336 バイトの値を返す式。
この関数の結果は、OCTETS のストリング単位の文字ストリングです。 引数が NULL になる可能性がある場合、結果も NULL になる可能性があります。 引数が NULL であれば、結果は NULL 値です。
コード・ページはセクション・コード・ページになります。
結果は、16 進数字のストリングです。 最初の 2 つは引数の最初のバイト、
次の 2 つは引数の 2 番目のバイトを表します。
以下同様です。 引数が日付/時刻値または数値である場合、
結果は引数の内部形式の 16 進表記になります。 戻される 16 進表記は、
関数が実行されるアプリケーション・サーバーによって異なる場合があります。 違いが生じる場合としては、次のような場合があります。
- EBCDIC サーバーに対する ASCII クライアントまたは ASCII サーバーに対する EBCDIC クライアントで、 文字ストリング引数を指定して HEX 関数を実行したとき。
- クライアント・システムとサーバー・システムとで数値のバイト・オーダーが異なる場合に、 HEX 関数に数値引数を指定したとき (場合によります)。
結果のタイプと長さは、文字ストリング引数と GRAPHIC ストリング引数のタイプ、長さ、およびストリング単位によって異なります。
引数のデータ・タイプ1 | 長さ属性2 | 結果データ・タイプ |
---|---|---|
CHAR(A) または BINARY(A) | A<128 | CHAR(A*2) |
CHAR(A) または BINARY(A) | A>127 | VARCHAR(A*2) |
VARCHAR(A)、VARBINARY(A)、CLOB(A)、または BLOB(A) | A<16337 | VARCHAR(A*2) |
GRAPHIC(A) | A<64 | CHAR(A*2*2) |
GRAPHIC(A) | A>63 | VARCHAR(A*2*2) |
VARGRAPHIC(A) または DBCLOB(A) | A<8169 | VARCHAR(A*2*2) |
CHAR(A CODEUNITS32) | A<64 | VARCHAR(A*4*2) |
VARCHAR(A CODEUNITS32) または CLOB(A CODEUNITS32) | A<4085 | VARCHAR(A*4*2) |
GRAPHIC(A CODEUNITS32) | A<64 | VARCHAR(A*2*2*2) |
VARGRAPHIC(A CODEUNITS32) または DBCLOB(A CODEUNITS32) | A<4085 | VARCHAR(A*2*2*2) |
1. ストリング単位が指定されない場合、データ・タイプのストリング単位は CODEUNITS32ではありません。 最大長さ属性は、データ・タイプ制限または入力引数用の 16336 バイトの限度を反映します。 |
例
以下の例では、 AIX® または Linux® 上でデータベース・アプリケーション・サーバーを使用することを想定しています。
- 例 1: DEPARTMENT 表を使用して、ホスト変数 HEX_MGRNO (char(12)) に、
「PLANNING」
部門 (DEPTNAME) の管理者番号 (MGRNO) の 16 進表記を設定します。
サンプル表を使用する場合、HEX_MGRNO はSELECT HEX(MGRNO) INTO :HEX_MGRNO FROM DEPARTMENT WHERE DEPTNAME = 'PLANNING'
303030303230
に設定されます (文字値は000020
)。 - 例 2: COL_1 が、データ・タイプ char(1)、値
「B」
の列であるとします。 英字「B」
の 16 数表記は X'42' です。 HEX(COL_1)は 2 バイトの長さのストリング"42"
を戻します。 - 例 3: COL_3 が、データ・タイプ decimal(6,2)、値 40.1 の列であるとします。 10 進数値 40.1 の内部表記に HEX 関数を適用した結果は、8 バイトの長さのストリング
0004010C
になります。