

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\$1execute\$1postgresql
<a name="sp_execute_postgresql"></a>

Permette di eseguire istruzioni PostgreSQL dall'endpoint T-SQL. In questo modo, non devi uscire dalla porta T-SQL per eseguire queste istruzioni, il che semplifica le tue applicazioni. 

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

 

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

## 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**
+ Per poter installare le estensioni, gli utenti devono avere il ruolo sysadmin su T-SQL e rds\$1superuser su postgres.
+ 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.