VARCHAR_BIT_FORMAT スカラー関数

VARCHAR_BIT_FORMAT 関数は、文字テンプレートを使ってフォーマットされた文字ストリングのビット・ストリング表現を返します。

構文図を読む構文図をスキップするVARCHAR_BIT_FORMAT(character-expression , format-string )

スキーマは SYSIBM です。

Unicode データベースでは、指定した引数が GRAPHIC ストリングであると、 まず文字ストリングに変換されてから、関数が実行されます。
character-expression
CLOB ではない組み込み文字ストリングである値を返す式 (SQLSTATE 42815)。必要な長さは、指定されたフォーマット・ストリングおよび値の解釈方法により決定されます。format-string 引数を指定しない場合、長さは範囲「0」から「9」、「a」から「f」、「A」から「F」の偶数の文字数にする必要があります (SQLSTATE 42815)。
format-string
character-expression のバイト数の解釈方法に関するテンプレートの入った文字定数。

有効なフォーマット・ストリングには、'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' および 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' (SQLSTATE 42815) が含まれます。ここで 'x' または 'X' はそれぞれ、結果の 16 進数字 1 桁に対応します。

この関数の結果は、フォーマット・ストリングに基づいた長さ属性および実際の長さを持つ可変長文字ストリング FOR BIT DATA です。 上にリストされている 2 つの有効なフォーマット・ストリングでは、結果の長さ属性は 36 で、実際の長さは 16 です。format-string 引数を指定しない場合、結果属性の長さは character-expression の長さ属性の半分になり、実際の長さは character-expression の実際の長さの半分になります。 最初の引数が NULL になる可能性がある場合、結果も NULL になる可能性があります。 最初の引数が NULL であれば、結果は NULL 値になります。

  • 例 1: UUID (Universal Unique Identifier) をそのバイナリー形式で表す
    VARCHAR_BIT_FORMAT('d83d6360-1818-11db-9804-b622a1ef5492', 
                       'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')
    
    戻される結果:
    	x'D83D6360181811DB9804B622A1EF5492'
  • 例 2: UUID (Universal Unique Identifier) をそのバイナリー形式で表す
    VARCHAR_BIT_FORMAT('D83D6360-1818-11DB-9804-B622A1EF5492',
                       'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX')
    戻される結果:
    	x'D83D6360181811DB9804B622A1EF5492'
  • 例 3: 16 進文字のストリングをバイナリー形式で表します。
    VARCHAR_BIT_FORMAT('ef01abC9')
    結果は、VARCHAR(4) FOR BIT DATA 値として戻ります。
    	x'EF01ABC9'
  • 例 4: 16 進文字のストリングを、文字ストリングとして データベースのコード・ページで表します。データベースが GRAPHIC タイプをサポートする場合は、FOR MIXED DATA 節を指定して結果を VARCHAR データ・タイプにキャストする必要があります。 そうでない場合は、FOR SBCS 節を指定して結果を VARCHAR データ・タイプにキャストする必要があります。以下の例では、Unicode データベースを使用すると仮定しています。
    VALUES CAST(VARCHAR_BIT_FORMAT(HEX('abcdefg')) AS VARCHAR(10) FOR MIXED DATA) 
    戻される結果:
    abcdefg