GRAPHIC スカラー関数
GRAPHIC 関数は、最初の引数のタイプの固定長グラフィック・ストリング表現を戻します。

構文:整数からグラフィック


構文: 10進数からグラフィック


構文:浮動小数点からグラフィック


構文:小数浮動小数点からグラフィック

構文:文字から図形へ:
構文:グラフィックからグラフィックへ:
スキーマは SYSIBM です。
GRAPHIC 関数は、次のもののグラフィック・ストリング表現を返します。
FL 502 最初の引数が SMALLINT、INTEGER、または BIGINT の場合、整数値
FL 502 最初の引数が小数点以下の数字の場合、小数点以下の数字
FL 502 最初の引数がDOUBLEまたはREALの場合、倍精度浮動小数点数
FL 502 最初の引数が DECFLOAT の場合、小数浮動小数点数
- 文字ストリング (最初の引数が任意のタイプの文字ストリングの場合)
- グラフィック・ストリング (最初の引数が EBCDIC または Unicode グラフィック・ストリングの場合)
結果は NULL になる可能性があります。第 1 引数が NULL の場合、結果は NULL 値となります。
結果の長さ属性は、結果がグラフィック・ストリングなので、2 バイト文字単位で 測定されます。

整数からグラフィックに
- 整数式
- 整数データ・タイプ (SMALLINT、INTEGER、または BIGINT) の値を戻す式。
結果は、SQL 整数定数の形式で引数を表現した固定長グラフィック・ストリングです。 結果は、引数の値を表すために使用できる最小文字数で、ブランクが埋め込まれます。 結果は、引数の値を表す n 文字の有効数字から成ります。引数が負数の場合は、負符号が前に付きます。 正の値は数字で始まり、常に少なくとも 1 つの末尾ブランクを含みます。 これに先行ゼロは含まれません。 結果は、左揃えになります。
- 引数が短精度整数の場合、結果の長さは 6 です。 結果の文字数が 6 未満の場合は、結果の右側にブランクが埋め込まれます。
- 引数が長精度整数の場合、結果の長さは 11 です。 結果の文字数が 11 未満の場合は、結果の右側にブランクが埋め込まれます。
- 引数が 64 ビット整数の場合、結果の長さは 20 です。 結果の文字数が 20 より少ない場合は、結果の右側にブランクが埋め込まれます。
結果の CCSID は 1200 (UTF-16) です。


10 進数からグラフィックに
- 小数式
- 組み込み 10 進データ・タイプの値を戻す式。 精度や位取りを変えたい場合は、DECIMAL スカラー関数を使用して変更することができます。 式の値に別の精度と位取りを指定するには、GRAPHIC 関数を適用する前に DECIMAL 関数を適用します。
- 十進文字
- 結果のグラフィック・ストリング内の 10 進数字を区切るために使用される 1 バイト文字定数を指定します。 この文字は数字、正符号 (+)、 負符号 (-)、またはブランクであってはなりません。 デフォルトはピリオド (.) またはコンマ (,) です。どの要因が選択に影響するかについては、小数点表記を参照してください。
結果は、最初の引数の固定長グラフィック・ストリング表現です。 結果は、引数の値を表すために使用できる最小文字数です。ただし、後続ゼロは含まれません。 結果には、小数点文字と最大 P 桁までの数字が含まれます。ここで、P は、引数が負の場合に先行する負符号 (-) を持つ 10 進数式 の精度です。 正の値は、数字または小数文字で始まり、常に少なくとも 1 つの末尾ブランクを含みます。 先行ゼロは返されません。 decimal-expression の位取りがゼロの場合、小数点文字は戻されません。 結果のバイト数が定義された結果の長さより少ない場合、結果の右側にブランクが埋め込まれます。
結果の長さは、 小数表現 の精度pを 2+p とします。
結果の CCSID は 1200 (UTF-16) です。


浮動小数点数からグラフィックに
- 浮動小数点式
- 浮動小数点データ・タイプ (DOUBLE または REAL) である値を戻す式。
結果は、SQL 浮動小数点定数の形式の引数の固定長グラフィック・ストリング表現です。 結果の最初の文字は、引数が負であれば、負符号となります。負でなければ、 最初の文字は数字です。 引数がゼロであると、結果は 0E0 になります。
結果の長さは 24 文字です。 結果には、引数の値を表すことができる最小文字数が含まれます。小数部は、ゼロ以外の 1 桁の数字と、それに続くピリオドと数字のシーケンスで構成されます。 結果の文字数が 24 より少ない場合は、結果の右側にブランクが埋め込まれます。
結果の CCSID は 1200 (UTF-16) です。


10 進浮動小数点数からグラフィックに
- 10 進浮動小数点式
- 組み込み 10 進浮動小数点データ・タイプ (DECFLOAT) の値を戻す式。
結果は、SQL 10 進浮動小数点定数の形式による引数の固定長グラフィック・ストリング表現です。
結果値が Infinity、sNaN、または NaN の場合、ストリング「INFINITY」、「SNAN」、および「NAN」がそれぞれ返されます。 DECFLOAT 特殊値 sNaN は、ストリングへの変換時に例外になりません。
結果の長さは 42 です。 結果の文字数が 42 未満の場合は、結果の右側にブランクが埋め込まれます。 後続ゼロは有効数字です。 引数が負である場合、結果の先頭の文字は負符号 (-) になります。 それ以外の場合、先頭文字は数字、または DECFLOAT 値が Infinity、sNaN、または NaN の場合は文字です。
結果の CCSID は 1200 (UTF-16) です。

文字からグラフィックに
- 文字表現
- EBCDIC エンコードまたは Unicode エンコードの文字ストリングの値を戻す式。 これは BIT データであってはなりません。 引数は混合データである必要はありませんが、
ストリング内に X'0E' および X'0F' が現れる場合は
、EBCDIC の混合データの規則に従う必要があります。 (これらの規則については文字列を参照)
integer が無指定の場合、または、そのストリングが EBCDIC ストリングで X'0E0F' を含んでいる場合、式の値は空ストリングであってはなりません。
- 整数
- 結果の固定長グラフィック・ストリングの長さであり、
明示的または暗黙的に指定された単位で表されます。 値は、1~127の範囲の整数定数でなければなりません。 character-expression の長さが指定された長さより短い場合、
結果は結果の長さになるまで 2 バイトのブランクが埋め込まれます。
CODEUNITS16 または CODEUNITS32 が指定されている場合、結果文字列の長さ属性を計算する方法については、「最終結果の長さ属性の決定」を参照してください。
integer を指定しない場合、EBCDIC ストリングの結果の長さは、 シフト文字を除き、最小値が 127 で 、character-expression の長さ属性になります。 Unicode (UTF-8) ストリングの場合、長さはデータにより異なりますが、127 以下です。
- CODEUNITS16 または CODEUNITS32
- integer を表すのに使用する単位を指定します。 CODEUNITS16 または CODEUNITS32 を
指定し、その入力が EBCDIC であり、EBCDIC GRAPHIC データ用のシステム CCSID
がない場合、エラーが発生します。
- CODEUNITS16
- integer が、16 ビットの UTF-16 コード単位の形で表現されるこ とを指定します。
- CODEUNITS32
- integer が、32 ビットの UTF-32 コード単位の形で表現されるこ とを指定します。
CODEUNITS16 と CODEUNITS32 の詳細については、 文字列単位仕様を参照してください。
結果の CCSID は、character-expression の文字 CCSID に対応するグラフィック CCSID です。 入力が EBCDIC で、EBCDIC GRAPHIC データのシステム CCSID がない場合、 結果の CCSID は X'FFFE' になります。
EBCDIC データでは、character-expression の各文字によって、結果の文字が決まります。 結果が導き出される前に、引数をネイティブ形式の混合データに変換する必要が ある場合もあります。 M を混合データ用のシステム CCSID にしてください。 以下のいずれかに当てはまる場合、引数は変換されません。
- 引数が混合データで、その CCSID が M である。
- 引数が SBCS データで、 その CCSID が SBCS データ用のシステム CCSID と同じである。 この場合は、引数の CCSID が M であるものとして演算は進められます。
これ以外の場合、引数は、M で識別されるコード化文字セット に引数の文字を変換することによって得られた、新しいストリング S になります。 EBCDIC 混合データのシステム CCSID がない場合は、SBCS データのシステム CCSID が識別するコード化文字セットに変換されます。
結果は、以下のステップを使用して S から導き出されます。
- 各シフト文字 (X'0E' または X'0F') を取り除く。
- 各 2 バイト文字はそのまま残す。
- 1 バイト文字を 2 バイト文字に置き換える。
SBCS 文字は、それに相当する DBCS 文字があればその 文字に置き換えられます。 それ以外は、X'FEFE' に置き換えられます。 相当する DBCS 文字の存在は M によって異なります。 混合データ用のシステム CCSID がない場合、EBCDIC の X'xxxx' に相当する DBCS は X'42xx' です。ただし X'40' の場合は例外で、これに相当する DBCS は X'4040' になります。
Unicode データの場合:
character-expression の各文字によって、結果の文字が決まります。 結果が導き出される前に、引数をネイティブ形式の混合データに変換する必要が ある場合もあります。 M を混合データ用のシステム CCSID にしてください。 以下のいずれかに当てはまる場合、引数は変換されません。
- 引数が混合データで、その CCSID が M である。
- 引数が SBCS データで、 その CCSID が SBCS データ用のシステム CCSID と同じである。 この場合は、引数の CCSID が M であるものとして演算は進められます。
これ以外の場合、引数は、M で識別されるコード化文字セット に引数の文字を変換することによって得られた、新しいストリング S になります。
結果は、以下のステップを使用して S から導き出されます。
- 非補足文字は、それぞれ Unicode の 2 バイト文字 (UTF-16 コード・ポイント) によって置き換えられます。 UTF-8 の補助文字以外の文字は、1~3バイトの範囲です。
- それぞれの補足文字は、1 対の Unicode の 2 バイト文字 (1 対の UTF-16 コード・ ポイント) で置き換えられます。
1 バイト文字は、それに相当する Unicode 文字があれば、 その文字に置き換えられます。 それ以外は、X'FEFE' に置き換えられます。
グラフィックからグラフィックに
- グラフィック表現
- GRAPHIC ストリング値を戻す式。 integer が無指定の場合、グラフィック・ストリン グは空ストリングであってはなりません。
- 整数
- 結果の固定長グラフィック・ストリングの長さであり、
明示的または暗黙的に指定された単位で表されます。 値は、1~127の範囲の整数定数でなければなりません。 graphic-expression の長さが指定された長さより短い場合、
結果は結果の長さになるまで 2 バイトのブランクが埋め込まれます。
CODEUNITS16 または CODEUNITS32 が指定されている場合、結果文字列の長さ属性を計算する方法については、「最終結果の長さ属性の決定」を参照してください。
integer を指定しない場合、 結果の長さは、127 と graphic-expression の長さ属性のうちの最小値になります。
- CODEUNITS16 または CODEUNITS32
- integer を表すのに使用する単位を指定します。 CODEUNITS16 または CODEUNITS32 を
指定し、その入力が EBCDIC であり、EBCDIC GRAPHIC データ用のシステム CCSID
がない場合、エラーが発生します。
- CODEUNITS16
- integer が、16 ビットの UTF-16 コード単位の形で表現されるこ とを指定します。
- CODEUNITS32
- integer が、32 ビットの UTF-32 コード単位の形で表現されるこ とを指定します。
CODEUNITS16 と CODEUNITS32 の詳細については、 文字列単位仕様を参照してください。
graphic-expression の長さが、結果の指定された長さを超えている場合、 結果は切り捨てられます。 切り捨てられたすべての文字が ブランクの場合以外は、警告が戻されます。
結果の CCSID は graphic-expression の CCSID と同じです。

注
- FL 502 数値データのUnicodeへの変換:
- 最初の引数が数値データの場合、GRAPHIC 関数の結果は Unicode (UTF-16) になります。 GRAPHIC 関数は、次のステートメントが含まれている場合にのみ、最初の引数に数値データを指定して呼び出すことができます。
- Unicode 基本表またはビューのみを参照し、ステートメントが単一のコード化スキーム・ステートメントになるように修飾されている。
- は複数のコード化スキーム・ステートメントと見なされ、アプリケーションのコード化スキームは Unicode です。

例
- 例 1:
- MYCOL が TABLEY 内の VARCHAR 列であるとします。 以下の関数は MYCOL 内のストリングを固定長グラフィック・ストリングとして 戻します。
SELECT GRAPHIC(MYCOL) FROM TABLEY;
例 2:

EMPLOYEE サンプル表に類似した EMPLOYEE_U 表が存在すると想定します。ただし、これは Unicode 表です。 SALARY 列と COMM 列は、精度 9、位取り 2 の DECIMAL として定義されます。 従業員 Haas の総収入を、コンマ小数点文字を使用した固定長グラフィック・ストリングとして戻します。
SELECT GRAPHIC(SALARY + COMM, ',') FROM EMPLOYEE_U WHERE LASTNAME = 'HAAS'結果が価値であるG'56970,00 '.

