ARRAY_UPDATEは、引数として配列式を取り、new_valueで指定した値でarray_expr内の構成要素のすべてまたはサブセットを更新します。
ARRAY_UPDATE関数には、次に示すルールが適用されます。
- array_exprがNULLの場合、結果はNULLになります。
- new_valueの値は、array_exprの要素型と同じデータ型と評価される必要があります。あるいは、暗黙的に要素型ARRAYに変換できるデータ型であることが必要です。
- scope_referenceまたはarray_indexを指定しない場合、array_expr内のすべての構成要素がnew_valueの値に更新されます。
- scope_referenceを指定すると、array_exprの適用範囲の参照内の構成要素のみがnew_valueの値に更新されます。scope_referenceは配列内の連続する構成要素を参照する必要があります。
- array_indexを指定すると、array_indexで指定した単一の構成要素のみが、array_expr内のnew_valueの値に更新されます。
- 更新する構成要素がNULLの場合、NULLはarray_expr内のnew_valueの値で置換されます。
- 1つ以上の構成要素が変更され、更新する構成要素より前にARRAY値内に初期化されていない構成要素がある場合、ARRAY_UPDATEはそれ以前の初期化されていない構成要素にNULLに設定します。この動作は、ARRAY構成要素値を設定する通常のSQL UPDATE文の動作と同じです。