GRAPHIC スカラー関数
GRAPHIC 関数は、さまざまなデータ・タイプの値の固定長 GRAPHIC ストリング表記を返します。
整数→ GRAPHIC
10 進数→ GRAPHIC
浮動小数点→ GRAPHIC
10 進浮動小数点→ GRAPHIC
文字→ GRAPHIC
GRAPHIC → GRAPHIC
日付/時刻→ GRAPHIC
ブール→ VARGRAPHIC
スキーマは SYSIBM です。 キーワードが関数シグニチャーで使用されている場合、関数名を修飾名で指定することはできません。
- 整数→ GRAPHIC
- 整数式
- 整数データ・タイプの値 (SMALLINT、INTEGER または BIGINT) を戻す式。
結果は、SQL 整数定数の形式による integer-expression の固定長 GRAPHIC ストリング表記になります。 結果は、引数内の有効桁数を表す n 個の 2 バイト文字で構成されます。引数が負の場合は、負符号 (-) が前に付けられます。 結果は左揃えになります。- 最初の引数が短精度整数 (small integer) の場合、 その結果の長さは 6 になります。
- 最初の引数が長精度整数 (large integer) の場合、 その結果の長さは 11 になります。
- 最初の引数が 64 ビット整数 (big integer) の場合、その結果の長さは 20 になります。
結果の コード・ページは、そのセクションの DBCS コード・ページ です。
- 10 進数→ GRAPHIC
- 10 進数式 (decimal-expression)
- 10 進数データ・タイプの値を戻す式。 DECIMAL スカラー関数は、精度およびスケールを変更するために使用できます。 10 進文字 (decimal-character)
- 結果 GRAPHIC ストリングの中で 10 進数を区切るために使用する 2 バイト文字定数 を指定します。 2 バイト文字定数を数字、正符号 (+)、負符号 (-)、またはブランク文字にすることはできません (SQLSTATE 42815)。 デフォルトはピリオド (.) 文字です。
結果は、SQL 10 進定数の形式による decimal-expression の固定長 GRAPHIC ストリング表記になります。 その結果の長さは 2+p です (p は decimal-expression の精度)。 先行ゼロは含められません。 後続ゼロは含められます。 decimal-expression が負である場合、結果の先頭の 2 バイト文字は負符号 (-) になります。それ以外の場合、最初の 2 バイト文字は数字または小数点文字になります。 decimal-expression の位取りがゼロの場合、小数点文字は戻されません。 結果内の 2 バイト文字の数が、結果に定義されていた長さ未満の場合、結果の右側にブランクが埋められます。
結果の コード・ページは、そのセクションの DBCS コード・ページ です。
- 浮動小数点→ GRAPHIC
- 浮動小数点式 (floating-point-expression)
- 浮動小数点データ・タイプ (DOUBLE または REAL) である値を戻す式。 10 進文字 (decimal-character)
- 結果 GRAPHIC ストリングの中で 10 進数を区切るために使用する 2 バイト文字定数 を指定します。 2 バイト文字定数を数字、正符号 (+)、負符号 (-)、またはブランク文字にすることはできません (SQLSTATE 42815)。 デフォルトはピリオド (.) 文字です。
結果は、SQL 浮動小数点定数の形式による floating-point-expression の固定長 GRAPHIC ストリング表記になります。 結果の長さは 24 文字です。 結果は、ピリオドと一連の数字が後に続くゼロ以外の 1 桁の数字で小数部が構成されることで、floating-point-expression の値を表すこともできる最小の 2 バイト文字数になります。 floating-point-expression が負である場合、結果の先頭の 2 バイト文字は負符号 (-) になります。それ以外の場合、最初の 2 バイト文字は数字になります。 floating-point-expression がゼロの場合、結果は 0E0 になります。 結果の 2 バイト文字の数が 24 未満の場合、結果の右側にブランクが埋められます。
結果の コード・ページは、そのセクションの DBCS コード・ページ です。
- 10 進浮動小数点→ GRAPHIC
- 10 進浮動小数点式 (decimal-floating-point-expression)
- 10 進浮動小数点データ・タイプ (DECFLOAT) である値を戻す式。 10 進文字 (decimal-character)
- 結果 GRAPHIC ストリングの中で 10 進数を区切るために使用する 2 バイト文字定数 を指定します。 2 バイト文字定数を数字、正符号 (+)、負符号 (-)、またはブランク文字にすることはできません (SQLSTATE 42815)。 デフォルトはピリオド (.) 文字です。
結果は、SQL 10 進浮動小数点定数の形式による decimal-floating-point-expression の固定長 GRAPHIC ストリング表記になります。 結果の長さ属性は 42 文字です。 結果は、decimal-floating-point-expression の値を表すことにできる 2 バイト文字の最小数になります。 decimal-floating-point-expression が負である場合、結果の先頭の 2 バイト文字は負符号 (-) になります。それ以外の場合、最初の 2 バイト文字は数字になります。 decimal-floating-point-expression がゼロの場合、結果は 0 になります。
decimal-floating-point-expression の値が特殊値 Infinity、sNaN、または NaN の場合、ストリング G'INFINITY'、G'SNAN'、および G'NAN' がそれぞれ戻されます。 特殊値が負である場合、結果の先頭の 2 バイト文字は負符号 (-) になります。 10 進浮動小数点の特殊値 sNaN は、ストリングに変換される場合、警告を生じません。 結果の 2 バイト文字の数が 42 未満の場合、結果の右側にブランクが埋められます。
結果の コード・ページは、そのセクションの DBCS コード・ページ です。
- 文字→ GRAPHIC
- Unicode データベース内で:
- 文字式 (character-expression)
- 組み込み文字ストリング・データ・タイプの値を戻す式。 この式は FOR BIT DATA サブタイプであってはなりません (SQLSTATE 42846)。 整数
- 結果の固定長グラフィック・ストリングの長さ属性を指定する整数定数。 値は、0 から 結果のストリング単位での GRAPHIC データ・タイプの最大長まででなければなりません。2 番目の引数が 指定されていない場合
- character-expression が空ストリング定数の場合、結果の長さ属性は 0 です。
- それ以外の場合は、結果の長さ属性は次の値のうち小さいほうの値になります。
- 結果のストリング単位での GRAPHIC データ・タイプの最大長
- 最初の引数の長さ属性
結果は、character-expression から変換される固定長グラフィック・ストリングになります。 結果の長さの属性は、integer の値によって決まります。
結果の実際の長さは、結果の長さ属性と同じです。
グラフィック・ストリングに変換される character-expression の長さが、結果の長さ属性より短い場合、結果の長さ属性になるまでブランクが結果に埋められます。
グラフィック・ストリングに変換される character-expression の長さが、結果の長さ属性より長い場合には、いくつかのシナリオが存在します。- 結果のストリング単位が CODEUNITS32 の場合は、切り捨てが行われます。 切り捨てられたのがブランク文字のみであり、character-expression が CHAR または VARCHAR の場合は、警告は戻されません。 それ以外の場合は、警告が戻されます (SQLSTATE 01004)。
- integer が指定された場合、切り捨てが行われます。 切り捨てられたのがブランク文字のみであり、character-expression が CHAR または VARCHAR の場合は、警告は戻されません。 それ以外の場合は、警告が戻されます (SQLSTATE 01004)。 最後の文字が高サロゲートになるように出力ストリングが切り捨てられた場合、 そのサロゲートはブランク文字 (X'0020') に変換されます。 この動作は今後のリリースで変更される可能性があるため、この動作に依存しないでください。
- integer が指定されていない場合、エラーが返されます (SQLSTATE 22001)。
変換処理について詳しくは、 VARGRAPHIC スカラー関数を参照してください。
- GRAPHIC → GRAPHIC
- グラフィック式 (graphic-expression)
- グラフィック・ストリング・データ・タイプである組み込み値を返す式。 整数
- 結果の固定長グラフィック・ストリングの長さ属性を指定する整数定数。 値は、0 から 結果のストリング単位での GRAPHIC データ・タイプの最大長まででなければなりません。2 番目の引数が 指定されていない場合
- graphic-expression が空ストリング定数の場合、結果の長さ属性は 0 です。
- それ以外の場合は、結果の長さ属性は次の値のうち小さいほうの値になります。
- 結果のストリング単位での GRAPHIC データ・タイプの最大長
- 最初の引数の長さ属性
結果は固定長グラフィック・ストリングです。 結果の長さの属性は、integer の値によって決まります。
結果の実際の長さは、結果の長さ属性と同じです。
graphic-expression の長さが結果の長さ属性より短い場合、結果の長さ属性になるまでブランクが結果に埋められます。
graphic-expression の長さが結果の長さ属性より長い場合には、いくつかのシナリオが存在します。- 結果のストリング単位が CODEUNITS32 の場合は、切り捨てが行われます。 切り捨てられたのがブランク文字のみであり、graphic-expression が GRAPHIC または VARGRAPHIC の場合は、警告は戻されません。 それ以外の場合は、警告が戻されます (SQLSTATE 01004)。
- integer が指定された場合、切り捨てが行われます。 切り捨てられたのがブランク文字のみであり、graphic-expression が GRAPHIC または VARGRAPHIC の場合は、警告は戻されません。 それ以外の場合は、警告が戻されます (SQLSTATE 01004)。 Unicode データベースにおいて、最後の文字が高サロゲートになるように出力ストリングが切り捨てられた場合、そのサロゲートはブランク文字 (X'0020') に変換されます。 この動作は今後のリリースで変更される可能性があるため、この動作に依存しないでください。
- integer が指定されず、graphic-expression が VARGRAPHIC の場合、切り捨ての動作は次のとおりです。
- ブランク文字だけが切り捨てられなければならない場合、切り捨てが実行され、警告は返されません。
- 非ブランク文字が切り捨てられなければならない場合、エラーが返されます (SQLSTATE 22001)。
- integer が指定されず、graphic-expression が DBCLOB の場合、エラーが返されます (SQLSTATE 22001)。
- 日付/時刻→ GRAPHIC
- 日時式 (datetime-expression)
- 次のデータ・タイプのいずれかの式。
- 日数
- 結果は、2 番目の引数によって指定された形式の日付の GRAPHIC ストリング表記になります。 結果の長さは 10 文字です。 2 番目の引数が指定され、その値が有効な値でない場合には、 エラーが戻されます (SQLSTATE 42703)。
- 時刻
- 結果は、2 番目の引数によって指定された形式の時刻の GRAPHIC ストリング表記になります。 結果の長さは 8 文字です。 2 番目の引数が指定され、その値が有効な値でない場合には、 エラーが戻されます (SQLSTATE 42703)。
- TIMESTAMP
- 結果は、タイム・スタンプの GRAPHIC ストリング表記になります。 datetime-expression のデータ・タイプが TIMESTAMP(0) の場合、その結果の長さは 19 になります。 datetime-expression のデータ・タイプが TIMESTAMP(n) の場合 (n は 1 から 12 までの間)、 その結果の長さは 20+n になります。 これ以外の場合、結果の長さは 26 となります。
ストリングのコード・ページは、セクションのコード・ページです。
- 次のデータ・タイプのいずれかの式。
- ブール→ GRAPHIC
- ブール式
- ブール値 (TRUE または FALSE) を返す式。 結果は 'TRUE ' (E の後にブランクがある) または 'FALSE' です。
結果
- 整数 (Unicode データベースのみ)、最初の引数が SMALLINT、INTEGER、または BIGINT の場合
- 10 進数 (Unicode データベースのみ)、最初の引数が 10 進数の場合
- 倍精度浮動小数点 (Unicode データベースのみ)、最初の引数が DOUBLE または REAL の場合
- 10 進浮動小数点数 (Unicode データベースのみ)、引数が 10 進浮動小数点数 (DECFLOAT) の場合
- 文字ストリング (最初の引数がいずれかのタイプの文字ストリングの場合)
- GRAPHIC ストリング (最初の引数がいずれかのタイプの GRAPHIC ストリングの場合)
- 日付/時刻値 (Unicode データベースのみ) (最初の引数が DATE、TIME、または TIMESTAMP の場合)
- ブール値 (TRUE または FALSE)
- CODEUNITS16。最初の引数が文字ストリングの場合、あるいは OCTETS または CODEUNITS16 のストリング単位の GRAPHIC ストリングの場合。
- CODEUNITS32。最初の引数が文字ストリングの場合、または CODEUNITS32 のストリング単位の GRAPHIC ストリングの場合。
- 環境のデフォルトのストリング単位によって決定される。最初の引数が文字ストリングでも GRAPHIC ストリングでもない場合。
最初の引数が NULL になる可能性がある場合、結果も NULL になる可能性があります。 最初の引数が NULL であれば、結果は NULL 値になります。
注
- アプリケーションの移植性の向上: 最初の引数が数値の場合、または最初の引数がストリングで、長さ引数が指定されている場合は、この関数の代わりに CAST 指定 を使用して、アプリケーションの移植性を高めます。
例
- 例 1: EDLEVEL 列は SMALLINT と定義されています。 以下の例では、固定長 GRAPHIC ストリングとして値を戻します。
結果は、値 G'18 ' になります。SELECT GRAPHIC(EDLEVEL) FROM EMPLOYEE WHERE LASTNAME = 'HAAS'
- 例 2: SALARY および COMM 列は、9 の精度と 2 の位取りをもった DECIMAL と定義されています。 コンマ小数点文字を使用して社員 Haas の収入合計を戻してください。
結果は、値 G'56970,00 ' になります。SELECT GRAPHIC(SALARY + COMM, ',') FROM EMPLOYEE WHERE LASTNAME = 'HAAS'
- 例 3: 以下のステートメントは、値が「TRUE」のデータ・タイプ GRAPHIC のストリングを返します。
values GRAPHIC(3=3)
- 例 4: 以下のステートメントは、値が「FALSE」のデータ・タイプ GRAPHIC のストリングを返します。
values GRAPHIC(3>3)