

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# ST\$1SetPoint
<a name="ST_SetPoint-function"></a>

ST\$1SetPoint は、インデックスで指定された入力ライン文字列の位置に関して更新された座標を持つライン文字列を返します。新しい座標は、入力ポイントの座標です。

結果のジオメトリのディメンションは、*geom1* 値 のものと同じです。*geom1* と *geom2* でディメンションが異なる場合、*geom2* が *geom1* のディメンションに射影されます。

## 構文
<a name="ST_SetPoint-function-syntax"></a>

```
ST_SetPoint(geom1, index, geom2)
```

## 引数
<a name="ST_SetPoint-function-arguments"></a>

 *geom1*   
データ型 `GEOMETRY` の値または `GEOMETRY` 型と評価される式の値。サブタイプは `LINESTRING` である必要があります。

 * インデックス*   
インデックスの位置を表すデータ型 `INTEGER` の値。`0` はライン文字列の左からの最初のポイントを指し、`1` は 2 番目のポイントを指します。インデックスには負の値を指定できます。`-1` はライン文字列の右から最初のポイントを指し、`-2` はライン文字列の右から 2 番目のポイントを指します。

 *geom2*   
データ型 `GEOMETRY` の値または `GEOMETRY` 型と評価される式の値。サブタイプは `POINT` である必要があります。

## 戻り型
<a name="ST_SetPoint-function-return"></a>

`GEOMETRY`

*geom2* が空のポイントである場合、*geom1* が返されます。

*geom1*、*geom2*、または *index* が null の場合、null が返されます。

*geom1* が linestring でない場合、エラーが返されます。

*インデックス*が有効なインデックス範囲内にない場合、エラーが返されます。

*geom2* が point でない場合、エラーが返されます。

*geom1* および *geom2* の空間リファレンスシステム識別子 (SRID) が同じ値でない場合、エラーが返されます。

## 例
<a name="ST_SetPoint-function-examples"></a>

次の SQL は、入力ライン文字列の 2 番目のポイントを指定されたポイントに設定する新しいライン文字列を返します。

```
SELECT ST_AsText(ST_SetPoint(ST_GeomFromText('LINESTRING(1 2, 3 2, 5 2, 1 2)'), 2, ST_GeomFromText('POINT(7 9)')));
```

```
st_astext              
-------------
 LINESTRING(1 2,3 2,7 9,1 2)
```

次の SQL 例では、新しいライン文字列を返します。ここでは、指定したポイントを持つライン文字列の右から 3 番目のポイント (インデックスは負の値) を設定します。

```
SELECT ST_AsText(ST_SetPoint(ST_GeomFromText('LINESTRING(1 2, 3 2, 5 2, 1 2)'), -3, ST_GeomFromText('POINT(7 9)')));
```

```
st_astext              
-------------
 LINESTRING(1 2,7 9,5 2,1 2)
```