>>-INSERT--(--expression1--,--expression2--,--------------------> >----expression3--,--expression4--)----------------------------><
スキーマは SYSFUN です。
expression2 から始まる expression1 から expression3 に等しいバイト数が削除され、 expression2 から始まる expression1 に expression4 が挿入されたストリングが戻されます。 結果のストリングの長さが戻りタイプの最大値を超える場合、 エラーが生じます (SQLSTATE 38552)。
最初の引き数は、文字ストリングまたは 2 進ストリングです。 2 番目および 3 番目の引き数は、 データ・タイプが SMALLINT または INTEGER の数値でなければなりません。 最初の引き数は、文字ストリングまたは 2 進ストリングです。 最初の引き数が 2 進ストリングである場合、 4 番目の引き数は 2 進ストリングでなければなりません。 VARCHAR の場合、最大長は 4 000 バイトです。 CLOB または 2 進ストリングの場合、 最大長は 1 048 576 バイトです。 最初の引き数および 4 番目の引き数については、CHAR が VARCHAR に変換され、 LONG VARCHAR が CLOB(1M) に変換されます。 2 番目および 3 番目の引き数の場合、この関数による処理に必要なので、 SMALLINT が INTEGER に変換されます。
結果は、以下のように引き数のタイプに基づきます。
結果はヌル値になることがあります。 いずれかの引き数がヌル値である場合、結果はヌル値になります。
例:
VALUES CHAR(INSERT('DINING', 3, 1, 'VID'), 10)
この例では、以下を戻します。
1 ---------- DIVIDING
前述のように、INSERT 関数の出力は VARCHAR(4000) になります。 上記の例の場合、 関数 CHAR が、INSERT の出力を 10 バイトに制限するために使用されています。 特定のストリングの開始位置は、LOCATE を使用して見つけることができます。 詳細については、LOCATEを参照してください。