

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 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 傳回一個 linestring，其中包含相對於索引指定之輸入 linestring 位置的更新座標。新座標是輸入點的座標。

傳回幾何的維度與 *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` 是指 linestring 左邊的第一個點，`1` 是指第二點，以此類推。索引可以是負值。`-1` 是指 linestring 右側的第一個點，`-2` 是指 linestring 右側的第二個點，以此類推。

 *geom2*   
`GEOMETRY` 資料類型的值，或是評估為 `GEOMETRY` 類型的表達式。子類型必須是 `POINT`。

## 傳回類型
<a name="ST_SetPoint-function-return"></a>

`GEOMETRY`

如果 *geom2* 是空點，則傳回 *geom1*。

如果 *geom1*、*geom2* 或 *index* 為 Null，則會傳回 Null。

如果 *geom1* 不是線串，則會傳回錯誤。

如果 *index* 不在有效的索引範圍內，則傳回錯誤。

如果 *geom2* 不是點，則會傳回錯誤。

如果 *geom1* 和 *geom2* 的空間參考系統識別碼 (SRID) 不同，則會傳回錯誤。

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

下列 SQL 會傳回一個新的 linestring，在這裡我們將輸入 linestring 的第二個點設定為指定點。

```
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 範例會傳回一個新的 linestring，在這裡我們將 linestring 右側的第三個點 (索引為負) 設定為指定點。

```
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)
```