VARCHAR スカラー関数

VARCHAR 関数は、さまざまなデータ・タイプの値の可変長文字ストリング表記を返します。

2 進整数から VARCHAR へ

Read syntax diagramSkip visual syntax diagramVARCHAR(integer-expression )

10 進数から VARCHAR へ

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

浮動小数点から VARCHAR へ

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

10 進浮動小数点数から VARCHAR へ

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

文字ストリングから VARCHAR へ

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

グラフィック・ストリングから VARCHAR へ

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

バイナリー・ストリングから VARCHAR へ

Read syntax diagramSkip visual syntax diagram VARCHAR ( binary-expression ,integer )

日時から VARCHAR へ

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

ブール値から VARCHAR へ

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

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

2 進整数から VARCHAR へ
整数式
整数データ・タイプの値 (SMALLINT、INTEGER または BIGINT) を戻す式。
結果は、SQL 整数定数の形式による integer-expression の可変長ストリング表記になります。 結果の長さ属性は、以下に示すように、integer-expression が短精度、長精度、または 64 ビット整数のどれであるかによって異なります。
  • 最初の引数が短精度整数 (small integer) の場合、その結果の最大長は 6 になります。
  • 最初の引数が長精度整数 (large integer) の場合、その結果の最大長は 11 になります。
  • 最初の引数が 64 ビット整数 (big integer) の場合、その結果の最大長は 20 になります。

結果の実際の長さは、引数の値を表すために使用できる最小の文字数です。 先行ゼロは含められません。 引数が負である場合、結果の先頭の文字は負符号 (-) になります。 そうでない場合、先頭文字は数字です。

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

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

結果は、SQL 10 進定数の形式による decimal-expression の可変長文字ストリング表記になります。 結果の長さ属性は 2+p です (pdecimal-expression の精度)。 結果の実際の長さは、後続ゼロが含まれている場合を除いて、結果を表すために使用できる最小の文字数です。 先行ゼロは含められません。 decimal-expression が負である場合、結果の先頭の文字は負符号 (-) になります。それ以外の場合、最初の文字は数字または小数点文字になります。 decimal-expression の位取りがゼロの場合、小数点文字は戻されません。

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

浮動小数点から VARCHAR へ
浮動小数点式 (floating-point-expression)
浮動小数点データ・タイプ (DOUBLE または REAL) である値を戻す式。
10 進文字 (decimal-character)
結果文字ストリングの中で 10 進数を区切るために使用する 1 バイト文字定数を指定します。 文字定数を数字、正符号 (+)、負符号 (-)、またはブランク文字にすることはできません (SQLSTATE 42815)。 デフォルトはピリオド (.) 文字です。

結果は、SQL 浮動小数点定数の形式による floating-point-expression の可変長文字ストリング表記になります。

結果の最大長は 24 文字です。 結果の実際の長さは、decimal-character と一連の数字が後に続くゼロ以外の 1 桁の数字で小数部が構成されることで floating-point-expression の値を表すことのできる、最小の文字数になります。 floating-point-expression が負である場合、結果の先頭の文字は負符号 (-) になります。それ以外の場合、 最初の文字は数字になります。 floating-point-expression がゼロの場合、結果は 0E0 になります。

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

10 進浮動小数点数から VARCHAR へ
10 進浮動小数点式 (decimal-floating-point-expression)
10 進浮動小数点データ・タイプ (DECFLOAT) である値を戻す式。
10 進文字 (decimal-character)
結果文字ストリングの中で 10 進数を区切るために使用する 1 バイト文字定数を指定します。 文字定数を数字、正符号 (+)、負符号 (-)、またはブランク文字にすることはできません (SQLSTATE 42815)。 デフォルトはピリオド (.) 文字です。

結果は、SQL 10 進浮動小数点定数の形式による decimal-floating-point-expression の可変長文字ストリング表記になります。 結果の最大長は 42 文字です。 結果の実際の長さは、decimal-floating-point-expression の値を表すことのできる最小の文字数です。 decimal-floating-point-expression が負である場合、結果の先頭の文字は負符号 (-) になります。それ以外の場合、 最初の文字は数字になります。 decimal-floating-point-expression がゼロの場合、結果は 0 になります。

decimal-floating-point-expression の値が特殊値の Infinity、sNaN、または NaN の場合、ストリング “INFINITY”“SNAN”、および “NAN” がそれぞれ戻されます。 特殊値が負である場合、結果の先頭の文字は負符号 (-) になります。 10 進浮動小数点の特殊値 sNaN は、ストリングに変換される場合、警告を生じません。

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

文字ストリングから VARCHAR へ
文字式 (character-expression)
組み込み文字ストリング・データ・タイプの値を戻す式。
整数
結果の可変長文字ストリングの長さ属性を指定する整数定数。 値は、0 から 結果のストリング単位での VARCHAR データ・タイプの最大長まででなければなりません。
2 番目の引数が 指定されていない場合
  • character-expression が空ストリング定数の場合、結果の長さ属性は 0 です。
  • それ以外の場合は、結果の長さ属性は次の値のうち小さいほうの値になります。
    • 結果のストリング単位での VARCHAR データ・タイプの最大長
    • 最初の引数の長さ属性

結果は、可変長文字ストリングです。 結果の長さの属性は、integer の値によって決まります。 character-expression が FOR BIT DATA サブタイプである場合、結果は FOR BIT DATA です。

character-expression の長さが結果の長さ属性より長い場合には、いくつかのシナリオが存在します。
  • 結果のストリング単位が CODEUNITS32 の場合は、切り捨てが行われます。 切り捨てられたのがブランク文字のみであり、character-expression が CHAR または VARCHAR の場合は、警告は戻されません。 それ以外の場合は、警告が戻されます (SQLSTATE 01004)。
  • integer が指定された場合、切り捨てが行われます。 切り捨てられたのがブランク文字のみであり、character-expression が CHAR または VARCHAR の場合は、警告は戻されません。 それ以外の場合は、警告が戻されます (SQLSTATE 01004)。 マルチバイト文字の一部が切り捨てられた場合、その部分文字はブランク文字で置き換えられます。 この動作は今後のリリースで変更される可能性があるため、この動作に依存しないでください。
  • integer が指定されていない場合、エラーが返されます (SQLSTATE 22001)。
グラフィック・ストリングから VARCHAR へ
グラフィック式 (graphic-expression)
組み込み GRAPHIC ストリング・データ・タイプの値を戻す式。
整数
結果の可変長文字ストリングの長さ属性を指定する整数定数。 値は、0 から 結果のストリング単位での VARCHAR データ・タイプの最大長まででなければなりません。
2 番目の引数が 指定されていない場合
  • graphic-expression が空ストリング定数の場合、結果の長さ属性は 0 です。
  • graphic-expression のストリング単位が CODEUNITS32 の場合、結果の長さ属性は次の値のうちの小さい方になります。
    • 結果のストリング単位での VARCHAR データ・タイプの最大長
    • 最初の引数の長さ属性
  • それ以外の場合は、結果の長さ属性は次の値のうち小さいほうの値になります。
    • 結果のストリング単位での VARCHAR データ・タイプの最大長
    • 最初の引数の長さ属性の 3 倍

結果は、graphic-expression から変換される可変長文字ストリングになります。 結果の長さの属性は、integer の値によって決まります。

文字ストリングに変換される graphic-expression の長さが、結果の長さ属性より長い場合には、いくつかのシナリオが存在します。
  • 結果のストリング単位が CODEUNITS32 の場合は、切り捨てが行われます。 切り捨てられたのがブランク文字のみであり、graphic-expression が GRAPHIC または VARGRAPHIC の場合は、警告は戻されません。 それ以外の場合は、警告が戻されます (SQLSTATE 01004)。
  • integer が指定されていて、graphic-expression が GRAPHIC または VARGRAPHIC の場合、切り捨てが行われ、警告は返されません。
  • integer が指定されていて、graphic-expression が DBCLOB の場合、切り捨てが行われ、警告が返されます (SQLSTATE 01004)。
  • integer が指定されず、graphic-expression が GRAPHIC または VARGRAPHIC の場合、切り捨てが行われ、警告は返されません。
  • integer が指定されず、graphic-expression が DBCLOB の場合、エラーが返されます (SQLSTATE 22001)。
バイナリー・ストリングから VARCHAR へ
2 進式 (binary-expression)
組み込みバイナリー・ストリング・データ・タイプの値を戻す式。
整数
結果の可変長文字ストリングの長さ属性を指定する整数定数。 値は、0 から 結果のストリング単位での VARCHAR データ・タイプの最大長まででなければなりません。

結果は FOR BIT DATA 文字ストリングです。

日時から VARCHAR へ
日時式 (datetime-expression)
次のデータ・タイプのいずれかの式。
日付
結果は、2 番目の引数によって指定された形式の日付の文字ストリング表記になります。 結果の長さは 10 文字です。 2 番目の引数が指定され、その値が有効な値でない場合には、 エラーが戻されます (SQLSTATE 42703)。
時刻
結果は、2 番目の引数によって指定された形式の時刻の文字ストリング表記になります。 結果の長さは 8 文字です。 2 番目の引数が指定され、その値が有効な値でない場合には、 エラーが戻されます (SQLSTATE 42703)。
TIMESTAMP
結果は、タイム・スタンプの文字ストリング表記になります。 datetime-expression のデータ・タイプが TIMESTAMP(0) の場合、その結果の長さは 19 になります。 datetime-expression のデータ・タイプが TIMESTAMP(n) の場合 (n は 1 から 12 までの間)、 その結果の長さは 20+n になります。 これ以外の場合、結果の長さは 26 となります。 2 番目の引数は指定してはなりません (SQLSTATE 42815)。

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

ブール値から VARCHAR へ
ブール式
ブール値 (TRUE または FALSE) を返す式。 結果は「TRUE」または「FALSE」です。

結果

VARCHAR 関数は、以下の可変長文字ストリング表記を戻します。
  • 整数 (引数が SMALLINT、INTEGER、または BIGINT 値のみの場合)
  • 10 進数 (最初の引数が DECIMAL 値の場合)
  • 倍精度浮動小数点 (最初の引数が浮動小数点値 DOUBLE または REAL の場合)
  • 10 進浮動小数点数 (最初の引数が 10 進浮動小数点値 DECFLOAT の場合)
  • 文字ストリング (最初の引数が文字ストリング値 CHAR、VARCHAR、または CLOB の場合)
  • グラフィック・ストリング (Unicode データベースのみ) (最初の引数がグラフィック・ストリング値である GRAPHIC、VARGRAPHIC、または DBCLOB の場合)
  • 日時値 (最初の引数が日時値 DATE、TIME、または TIMESTAMP の場合)
  • ブール値「TRUE」または「FALSE」(引数が BOOLEAN 値 TRUE または FALSE のみの場合)
Unicode 以外のデータベースでは、結果のストリング単位は OCTETS です。 それ以外の場合、結果のストリング単位は、最初の引数のデータ・タイプによって決定されます。
  • OCTETS。最初の引数が文字ストリングの場合、あるいは OCTETS、CODEUNITS16、または 2 バイトのストリング単位の GRAPHIC ストリングの場合。
  • CODEUNITS32。最初の引数が文字ストリングの場合、または CODEUNITS32 のストリング単位の GRAPHIC ストリングの場合。
  • 環境のデフォルトのストリング単位によって決定される。最初の引数が文字ストリングでも GRAPHIC ストリングでもない場合。
Unicode データベースでは、複数バイト文字を介して出力ストリングが途中で切り捨てられると、 次のようになります。
  • 入力が文字ストリングであった場合、部分的な文字は 1 つ以上のブランクに置き換えられます。
  • 入力が GRAPHIC ストリングであった場合、部分的な文字は空ストリングに置き換えられます。
このどちらの動作も過信しないでください。今後のリリースで変更される可能性があるからです。

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

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

  • 例 1: 長さ 10 を指定して EMPNO 可変長を作成します。
       SELECT VARCHAR(EMPNO,10)
         INTO :VARHV
         FROM EMPLOYEE
  • 例 2: VARCHAR(8) と定義されたホスト変数 JOB_DESC (VARCHAR(8)) を、 社員 Dolores Quintana に関するジョブ記述と同等の VARCHAR (JOB 列の値) に設定します。
       SELECT VARCHAR(JOB)
         INTO :JOB_DESC
         FROM EMPLOYEE
         WHERE LASTNAME = 'QUINTANA'
  • 例 3: EDLEVEL 列は SMALLINT と定義されています。 以下の式は、値を可変長文字ストリングとして戻します。
       SELECT VARCHAR(EDLEVEL)
         FROM EMPLOYEE
         WHERE LASTNAME = 'HAAS'
    結果は、「18」の値になります。
  • 例 4: SALARY および COMM 列は、9 の精度と 2 の位取りをもった DECIMAL と定義されています。 コンマ小数点文字を使用して社員 Haas の収入合計を戻してください。
       SELECT VARCHAR(SALARY + COMM, ',')
         FROM EMPLOYEE
         WHERE LASTNAME = 'HAAS'
    結果は、「56970,00」の値になります。
  • 例 5: 以下のステートメントは、値が「TRUE」のデータ・タイプ VARCHAR のストリングを返します。
       values VARCHAR(3=3)
  • 例 6: 以下のステートメントは、値が「FALSE」のデータ・タイプ VARCHAR のストリングを返します。
       values VARCHAR(3>3)