

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# sp\_execute\_postgresql
<a name="sp_execute_postgresql"></a>

È possibile eseguire istruzioni PostgreSQL dall'endpoint. T-SQL Ciò semplifica le applicazioni in quanto non è necessario uscire dalla T-SQL porta per eseguire queste istruzioni. 

## Sintassi
<a name="sp_execute_postgresql-syntax"></a>

 

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

## Arguments (Argomenti)
<a name="sp_execute_postgresql-arguments"></a>

 *Istruzione [ @stmt ]*   
Il tipo di dati dell'argomento è varchar. Questo argomento accetta istruzioni in dialetto PG.

**Nota**  
È possibile passare come argomento solo un'istruzione in dialetto PG, in caso contrario viene generato l'errore seguente.

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

## Note per l’utilizzo
<a name="sp_execute_postgresql-statements"></a>

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

Crea e carica una nuova estensione nel database attuale. 

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

Il seguente esempio illustra come creare un'estensione:

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

Per concedere l'accesso alla funzione Lambda, utilizza il seguente comando:

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

**Nota**  
 Se il nome dello schema non viene fornito esplicitamente durante la creazione dell'estensione, per impostazione predefinita le estensioni vengono installate nello schema public. È necessario fornire il qualificatore dello schema per accedere agli oggetti di estensione come indicato di seguito:

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

**Estensioni supportate**

Le seguenti estensioni disponibili con Aurora PostgreSQL funzionano con Babelfish.
+ `pg_stat_statements`
+ `tds_fdw`
+ `fuzzystrmatch`

**Limitazioni**
+ Gli utenti devono avere il ruolo sysadmin su T-SQL e rds\_superuser su postgres per installare le estensioni.
+ Non è possibile installare estensioni in schemi creati dall'utente e nemmeno negli schemi dbo e guest per i database master, tempdb e msdb. 
+ L'opzione CASCADE non è supportata.

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

È possibile eseguire l'aggiornamento a una nuova versione dell'estensione utilizzando l'istruzione ALTER extension. 

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

**Limitazioni**
+ È possibile aggiornare la versione dell'estensione solo utilizzando l'istruzione ALTER Extension. Altre operazioni non sono supportate.

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

Rimuove l'estensione specificata. Per rimuovere l'estensione, è anche possibile usare le nostre opzioni `if exists` o `restrict`. 

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

**Limitazioni**
+ L'opzione CASCADE non è supportata.