次の2-D ARRAYデータ型およびテーブルについて考えてみましょう。
CREATE TYPE shot_ary AS INTEGER ARRAY[1:50][1:50]; CREATE TABLE seismic_data ( id INTEGER, shot1 shot_ary, shot2 shot_ary);
次の問合わせは、構成要素が1つ置きに新しい値に更新されたshot1配列の更新後のコピーを返します。
SELECT ARRAY_UPDATE_STRIDE(shot1, 0, 1) FROM seismic_data;
次の問合わせは、適用範囲の参照とSTRIDE値で指定したように、構成要素のサブセットが新しい値に更新されたshort1配列の更新後のコピーを返します。その結果、適用範囲の参照範囲[1:50][1:50]内にある最初の構成要素から始めて、5つ目ごとの構成要素が新しい値に更新されます。配列内の残りの構成要素は元の値のままです。
SELECT ARRAY_UPDATE_STRIDE(shot1, 0, 5, NEW arrayVec(1,1), NEW arrayVec(50,50)) FROM seismic_data;
次は、メソッドスタイルの構文を使用した同じ問合わせです。
SELECT shot1.ARRAY_UPDATE_STRIDE (0, 5, NEW arrayVec(1,1), NEW arrayVec(50,50)) FROM seismic_data;