REPEAT スカラー関数
REPEAT 関数は、最初の引数を、2 番目の引数で指定した回数繰り返して構成された文字ストリングを戻します。
スキーマは SYSIBM です。REPEAT 関数の SYSFUN バージョンは引き続き使用可能です。
- expression1
- 繰り返すストリングを指定する式。この式は、組み込みの文字ストリング、数値、ブール値、または日時値を返す必要があります。 文字ストリングでない値は、関数の評価の前に VARCHAR に暗黙的にキャストされます。
- expression2
- ストリングを繰り返す回数を指定する、正整数値またはゼロである式。 この式は、組み込みの文字ストリング、GRAPHIC ストリング、または数値を返す必要があります。 値が整数でない場合は、関数の評価の前に INTEGER に暗黙的にキャストされます。
結果
この関数の結果は、以下のいずれかのデータ・タイプとなります。
- expression1 が BINARY または VARBINARY ストリングの場合は VARBINARY
- expression1 が CHAR または VARCHAR ストリングの場合は VARCHAR
- expression1 が GRAPHIC または VARGRAPHIC ストリングの場合は VARGRAPHIC
- expression1 が CLOB の場合は CLOB
- expression1 が BLOB の場合は BLOB
- expression1 が DBCLOB の場合は DBCLOB
expression2 が定数の場合、結果の長さ属性は、expression1 の長さ属性の expression2 倍と結果データ・タイプの最大長のうち、小さいほうになります。
そうでない場合、長さ属性は、結果のデータ・タイプに応じて以下のように異なります。
- VARBINARY および VARCHAR の場合は 4000
- VARGRAPHIC の場合は 2000
- CLOB、DBCLOB、および BLOB の場合は 1 MB
結果の実際の長さは、expression1 の実際の長さに expression2 を乗算した値になります。 結果のストリングの実際の長さが、戻りタイプの長さ属性を超える場合、エラーが戻されます (SQLSTATE 54006)。
結果のデータ・タイプが文字ストリングまたはグラフィック・ストリングの場合、結果のストリング単位は expression1 のストリング単位です。
引数のいずれかが NULL になる可能性がある場合、結果も NULL になる可能性があります。 引数のいずれかが NULL の場合、その結果は NULL 値です。
例
- 「abc」を 2 回繰り返して「abcabc」を作成します。
SELECT REPEAT('abc',2) FROM SYSIBM.SYSDUMMY1 - 句 'REPEAT THIS' を 5 回リストします。
CHAR 関数を使用して、出力を 60 バイトに制限します。
この例では、以下のストリングが出力されます。SELECT CHAR(REPEAT('REPEAT THIS',5), 60) FROM SYSIBM.SYSDUMMY1'REPEAT THISREPEAT THISREPEAT THISREPEAT THISREPEAT THIS ' - 次の照会の場合、ストリングをゼロ回繰り返した結果は
長さがゼロのストリングである空ストリングであるため、LENGTH 関数は 0 の値を戻します。
SELECT LENGTH(REPEAT('REPEAT THIS',0)) FROM SYSIBM.SYSDUMMY1 - 次の照会の場合、LENGTH 関数は値 0 を戻します。
値が 0 になる理由は、空ストリングを何回繰り返しても結果は空ストリング (長さがゼロのストリング) であるためです。
SELECT LENGTH(REPEAT('', 5)) FROM SYSIBM.SYSDUMMY1
