GRAPHIC スカラー関数

GRAPHIC 関数は、さまざまなデータ・タイプの値の固定長 GRAPHIC ストリング表記を返します。

整数→ GRAPHIC

Read syntax diagramSkip visual syntax diagramGRAPHIC(integer-expression )

10 進数→ GRAPHIC

Read syntax diagramSkip visual syntax diagramGRAPHIC(decimal-expression ,decimal-character )

浮動小数点→ GRAPHIC

Read syntax diagramSkip visual syntax diagramGRAPHIC(floating-point-expression ,decimal-character )

10 進浮動小数点→ GRAPHIC

Read syntax diagramSkip visual syntax diagramGRAPHIC(decimal-floating-point-expression ,decimal-character )

文字→ GRAPHIC

Read syntax diagramSkip visual syntax diagramGRAPHIC(character-expression ,integer)

GRAPHIC → GRAPHIC

Read syntax diagramSkip visual syntax diagramGRAPHIC(graphic-expression ,integer)

日付/時刻→ GRAPHIC

Read syntax diagramSkip visual syntax diagramGRAPHIC(datetime-expression ,ISOUSAEURJISLOCAL)

ブール→ VARGRAPHIC

Read syntax diagramSkip visual syntax diagram GRAPHIC ( boolean-expression )

スキーマは SYSIBM です。 キーワードが関数シグニチャーで使用されている場合、関数名を修飾名で指定することはできません。

整数→ GRAPHIC
整数式
整数データ・タイプの値 (SMALLINT、INTEGER または BIGINT) を戻す式。
結果は、SQL 整数定数の形式による integer-expression の固定長 GRAPHIC ストリング表記になります。 結果は、引数内の有効桁数を表す n 個の 2 バイト文字で構成されます。引数が負の場合は、負符号 (-) が前に付けられます。 結果は左揃えになります。
  • 最初の引数が短精度整数 (small integer) の場合、 その結果の長さは 6 になります。
  • 最初の引数が長精度整数 (large integer) の場合、 その結果の長さは 11 になります。
  • 最初の引数が 64 ビット整数 (big integer) の場合、その結果の長さは 20 になります。
結果内の 2 バイト文字の数が、結果に定義されていた長さ未満の場合、結果の右側にブランクが埋められます。

結果の コード・ページは、そのセクションの DBCS コード・ページ です。

10 進数→ GRAPHIC
10 進数式 (decimal-expression)
10 進数データ・タイプの値を戻す式。 DECIMAL スカラー関数は、精度およびスケールを変更するために使用できます。
10 進文字 (decimal-character)
結果 GRAPHIC ストリングの中で 10 進数を区切るために使用する 2 バイト文字定数 を指定します。 2 バイト文字定数を数字、正符号 (+)、負符号 (-)、またはブランク文字にすることはできません (SQLSTATE 42815)。 デフォルトはピリオド (.) 文字です。

結果は、SQL 10 進定数の形式による decimal-expression の固定長 GRAPHIC ストリング表記になります。 その結果の長さは 2+p です (pdecimal-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 スカラー関数を参照してください。

非 Unicode データベース内で:
文字式 (character-expression)
組み込み CHAR または VARCHAR データ・タイプの値を返す式。

結果は、character-expression から変換される固定長グラフィック・ストリングになります。 結果の長さ属性は、character-expression の長さ属性と、GRAPHIC データ・タイプの最大長のうちの小さい方になります。

結果の実際の長さは、結果の長さ属性と同じです。 グラフィック・ストリングに変換される character-expression の長さが、結果の長さ属性より短い場合、結果の長さ属性になるまでブランクが結果に埋められます。 グラフィック・ストリングに変換される character-expression の長さが、結果の長さ属性より長い場合には、エラーが返されます (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' です。

結果

GRAPHIC 関数は、以下を表す固定長の GRAPHIC ストリングを戻します。
  • 整数 (Unicode データベースのみ)、最初の引数が SMALLINT、INTEGER、または BIGINT の場合
  • 10 進数 (Unicode データベースのみ)、最初の引数が 10 進数の場合
  • 倍精度浮動小数点 (Unicode データベースのみ)、最初の引数が DOUBLE または REAL の場合
  • 10 進浮動小数点数 (Unicode データベースのみ)、引数が 10 進浮動小数点数 (DECFLOAT) の場合
  • 文字ストリング (最初の引数がいずれかのタイプの文字ストリングの場合)
  • GRAPHIC ストリング (最初の引数がいずれかのタイプの GRAPHIC ストリングの場合)
  • 日付/時刻値 (Unicode データベースのみ) (最初の引数が DATE、TIME、または TIMESTAMP の場合)
  • ブール値 (TRUE または FALSE)
Unicode 以外のデータベースでは、結果のストリング単位は 2 バイトです。 それ以外の場合、結果のストリング単位は、最初の引数のデータ・タイプによって決定されます。
  • CODEUNITS16。最初の引数が文字ストリングの場合、あるいは OCTETS または CODEUNITS16 のストリング単位の GRAPHIC ストリングの場合。
  • CODEUNITS32。最初の引数が文字ストリングの場合、または CODEUNITS32 のストリング単位の GRAPHIC ストリングの場合。
  • 環境のデフォルトのストリング単位によって決定される。最初の引数が文字ストリングでも GRAPHIC ストリングでもない場合。

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

  • アプリケーションの移植性の向上: 最初の引数が数値の場合、または最初の引数がストリングで、長さ引数が指定されている場合は、この関数の代わりに CAST 指定 を使用して、アプリケーションの移植性を高めます。

  • 例 1: EDLEVEL 列は SMALLINT と定義されています。 以下の例では、固定長 GRAPHIC ストリングとして値を戻します。
      SELECT GRAPHIC(EDLEVEL) 
        FROM EMPLOYEE 
        WHERE LASTNAME = 'HAAS'
    結果は、値 G'18 ' になります。
  • 例 2: SALARY および COMM 列は、9 の精度と 2 の位取りをもった DECIMAL と定義されています。 コンマ小数点文字を使用して社員 Haas の収入合計を戻してください。
      SELECT GRAPHIC(SALARY + COMM, ',') 
        FROM EMPLOYEE 
        WHERE LASTNAME = 'HAAS'
    結果は、値 G'56970,00 ' になります。
  • 例 3: 以下のステートメントは、値が「TRUE」のデータ・タイプ GRAPHIC のストリングを返します。
       values GRAPHIC(3=3)
  • 例 4: 以下のステートメントは、値が「FALSE」のデータ・タイプ GRAPHIC のストリングを返します。
       values GRAPHIC(3>3)