ASCII_STR スカラー関数

ASCII_STR 関数は、ASCII バージョンのストリングを返します。

Read syntax diagramSkip visual syntax diagram ASCII_STR ( string-expression )

スキーマは SYSIBM です。

文字列式
組み込み文字またはグラフィック・ストリングの値を戻す式。
文字ストリングはビット・データであってはなりません (SQLSTATE 42815)。
引数を数値データ・タイプにすることもできます。 数値引数は、暗黙的に VARCHAR データ・タイプにキャストされます。

ASCII_STR は、ASCII バージョンのストリングを返します。 非 ASCII 文字は UTF-16 文字に変換され、¥xxxx (サロゲート文字の場合は ¥xxxx¥yyyy) の形式で結果に表示されます。ここで、xxxx および yyyy は UTF-16 コード単位を表します。 string-expression の円記号は、二重の円記号に変換されます。

結果のストリング単位は OCTETS です。

結果の長さ属性は MIN((5*n),32672) です。ここで n は次のように決定されます。
  • string-expression のストリング単位が OCTETS または CODEUNITS16 になっている場合、n は入力ストリングの長さ属性になります。
  • string-expression のストリング単位が CODEUNITS32 になっている場合、n は入力ストリングの長さ属性の 2 倍になります。

結果

関数の結果は、可変長文字ストリングです。

結果のストリングの実際の長さが戻りタイプの最大長を超えると、エラーが発生します (SQLSTATE 54006)。

引数が NULL になる可能性がある場合、結果も NULL になる可能性があります。 引数が NULL の場合、結果は NULL 値になります。

代替構文として、ASCIISTR を ASCII_STR のシノニムとして指定できます。

次の例は、Unicode (UTF-8) ストリング「4869206D616D6520697320D090D0BDD0B4D180D0B5D0B9202020F0908080」に相当する ASCII ストリングを返します。

SET :HV1 = ASCII_STR(X'4869206D616D6520697320D090D0BDD0B4D180D0B5D0B9202020F0908080');

:HV1 には、値「Hi, my name is ¥0410¥043D¥0434¥0440¥0435¥0439 ¥D800¥DC00」が割り当てられます。

この例では、UTF-8 文字 D090、D0BD、D0B4、D180、D0B5、および D0B9 は ¥0410¥043D¥0434¥0440¥0435¥0439 に変換され、非 ASCII 文字 F0908080 は ¥D800¥DC00 に変換されます。

SET :HV1 = ASCII_STR('Hi, my name is Андрей(Andrei)');

:HV1 には、値「Hi, my name is ¥0410¥043D¥0434¥0440¥0435¥0439 (Andrei)」が割り当てられます。