BINARY スカラー関数

BINARY 関数は、任意のデータ・タイプのストリングの固定長バイナリー・ストリング表現を戻します。

構文図を読む構文図をスキップするBINARY(string-expression , integer)

スキーマは SYSIBM です。

string-expression
文字ストリング、GRAPHIC ストリング、またはバイナリー・ストリングのデータ・タイプの値を返す式。
integer
結果の BINARY データ・タイプの長さ属性を指定する整数定数の値。 1 から 255 までの範囲の値でなければなりません。integer を指定しない場合、結果の長さ属性は、以下の値の小さいほうになります。
  • BINARY データ・タイプの最大長
  • バイト単位で表された string-expression のデータ・タイプの長さ属性
    • string-expression が、バイナリー・ストリング、FOR BIT DATA の文字ストリング、またはストリング単位 OCTETS の文字ストリングの場合、長さ属性。
    • string-expression が、ストリング単位 CODEUNITS16 または 2 バイトのグラフィック・ストリングの場合、長さ属性の 2 倍
    • string-expression が、ストリング単位 CODEUNITS32 の文字ストリングまたはグラフィック・ストリングの場合、長さ属性の 4 倍

string-expression が空ストリングで、integer 引数が指定されていない場合、エラーが戻されます (SQLSTATE 42815)。

関数の結果は BINARY です。 最初の引数が NULL になる可能性がある場合、結果も NULL になる可能性があります。 最初の引数が NULL であれば、結果は NULL 値になります。

実際の長さは、結果の長さ属性と同じになります。バイナリー・ストリングに変換された string-expression の長さが、結果の長さ属性より短い場合、結果の長さになるまで 16 進ゼロが結果に埋め込まれます。 バイナリー・ストリングに変換された string-expression の長さが、結果の長さ属性より長い場合、切り捨てが実行されます。

以下の状況では警告 (SQLSTATE 01004) が戻されます。
  • 最初の引数が文字ストリングまたはグラフィック・ストリング (CLOB および DBCLOB を除く) であり、非ブランク文字が切り捨てられる。
  • 最初の引数がバイナリー・ストリング (BLOB を除く) であり、非 16 進ゼロが切り捨てられる。

  1. 次の関数は、長さ属性が 1 で、値が BX'00' の固定長バイナリー・ストリングを戻します。
       SELECT BINARY('',1)
         FROM SYSIBM.SYSDUMMY1
  2. 次の関数は、長さ属性が 5 で、値が BX'4B42480000' の固定長バイナリー・ストリングを戻します。
       SELECT BINARY('KBH',5)
         FROM SYSIBM.SYSDUMMY1
  3. 次の関数は、長さ属性が 3 で、値が BX'4B4248' の固定長バイナリー・ストリングを戻します。
       SELECT BINARY('KBH') 
         FROM SYSIBM.SYSDUMMY1
  4. 次の関数は、長さ属性が 3 で、値が BX'4B4248' の固定長バイナリー・ストリングを戻します。
       SELECT BINARY('KBH ',3) 
         FROM SYSIBM.SYSDUMMY1
  5. 次の関数は、長さ属性が 3 で、値が BX'4B4248' の固定長バイナリー・ストリングを、警告 (SQLSTATE 01004) と共に戻します。
       SELECT BINARY('KBH 93',3) 
         FROM SYSIBM.SYSDUMMY1