

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# sp\$1execute\$1postgresql
<a name="sp_execute_postgresql"></a>

您可以從 T-SQL 端點執行 PostgreSQL 陳述式。這樣可簡化您的應用程式，因為您不需要結束 T-SQL 連接埠，即可執行這些陳述式。

## 語法
<a name="sp_execute_postgresql-syntax"></a>

 

```
sp_execute_postgresql [ @stmt = ] statement
```

## 引數
<a name="sp_execute_postgresql-arguments"></a>

 *[ @stmt ] 陳述式*   
引數屬於資料類型 varchar。此引數接受 PG 方言陳述式。

**注意**  
您只能傳遞一個 PG 方言陳述式作為引數，否則其會引發下列錯誤。

```
1>exec sp_execute_postgresql 'create extension pg_stat_statements; drop extension pg_stat_statements'
2>go
```

```
Msg 33557097, Level 16, State 1, Server BABELFISH, Line 1
expected 1 statement but got 2 statements after parsing
```

## 使用須知
<a name="sp_execute_postgresql-statements"></a>

### CREATE EXTENSION
<a name="sp_execute_postgresql-statements-create"></a>

建立新的擴充功能並將其載入至目前資料庫。

```
1>EXEC sp_execute_postgresql 'create extension [ IF NOT EXISTS ] <extension name> [ WITH ] [SCHEMA schema_name] [VERSION version]';
2>go
```

下列範例示範如何建立擴充功能：

```
1>EXEC sp_execute_postgresql 'create extension pg_stat_statements with schema sys version "1.10"';
2>go
```

請使用下列命令存取擴充功能物件：

```
1>select * from pg_stat_statements;
2>go
```

**注意**  
 如果在擴充功能建立期間未明確提供結構描述名稱，則依預設，擴充功能會安裝在公開結構描述中。您必須提供結構描述限定詞來存取擴充功能物件，如下所述：

```
1>select * from [public].pg_stat_statements;
2>go
```

**支援的擴充功能**

Aurora PostgreSQL 提供的以下擴充功能可與 Babelfish 搭配使用。
+ `pg_stat_statements`
+ `tds_fdw`
+ `fuzzystrmatch`

**限制**
+ 使用者必須在 T-SQL 上具有 sysadmin 角色，並在 postgres 上具有 rds\$1superuser，才能安裝擴充功能。
+ 擴充功能無法安裝在使用者建立的結構描述中，也不能安裝在 master、tempdb 和 msdb 資料庫的 dbo 和客體結構描述中。
+ 不支援 CASCADE 選項。

## ALTER EXTENSION
<a name="sp_execute_postgresql-alter"></a>

您可以使用 ALTER Extension 升級到新的擴充功能版本。

```
1>EXEC sp_execute_postgresql 'alter extension <extension name> UPDATE TO <new_version>';
2>go
```

**限制**
+ 您只能使用 ALTER Extension 陳述式來升級擴充功能的版本。不支援其他操作。

## DROP EXTENSION
<a name="sp_execute_postgresql-drop"></a>

刪除指定的擴充功能。您也可以使用 `if exists` 或 `restrict` 選項刪除擴充功能。

```
1>EXEC sp_execute_postgresql 'drop extension <extension name>';
2>go
```

**限制**
+ 不支援 CASCADE 選項。