

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

Puede ejecutar instrucciones PostgreSQL desde el punto de conexión de T-SQL. Así se simplifican las aplicaciones, ya que no es necesario salir del puerto T-SQL para ejecutar las instrucciones. 

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

 

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

## Argumentos
<a name="sp_execute_postgresql-arguments"></a>

 *Instrucción [@stmt]*   
El argumento es de tipo varchar. Este argumento acepta instrucciones del dialecto PG.

**nota**  
Como argumento solo puede especificarse una instrucción del dialecto PG; de lo contrario, se generará el error siguiente:

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

## Notas de uso
<a name="sp_execute_postgresql-statements"></a>

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

Crea y carga una nueva extensión en la base de datos actual. 

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

En el ejemplo siguiente se muestra cómo crear una extensión:

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

Utilice el comando siguiente para obtener acceso a objetos de extensión:

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

**nota**  
 Si el nombre del esquema no se proporciona de forma explícita cuando se crea la extensión, las extensiones se instalan de forma predeterminada en el esquema público. Debe proporcionar el calificador de esquema para tener acceso a los objetos de la extensión, como se indica a continuación:

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

**Extensiones compatibles**

Las siguientes extensiones disponibles con Aurora PostgreSQL funcionan con Babelfish.
+ `pg_stat_statements`
+ `tds_fdw`
+ `fuzzystrmatch`

**Limitaciones**
+ Los usuarios deben tener el rol sysadmin en T-SQL y rds\$1superuser en postgres para instalar las extensiones.
+ Las extensiones no se pueden instalar en los esquemas creados por el usuario ni tampoco en los esquemas dbo y guest de las bases de datos master, tempdb y msdb. 
+ La opción CASCADE no es compatible.

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

Puede actualizar a una nueva versión de la extensión utilizando ALTER EXTENSION. 

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

**Limitaciones**
+ La versión de la extensión solamente se puede actualizar con la instrucción ALTER EXTENSION. No se admiten otras operaciones.

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

Elimina la extensión especificada. También puede usar las opciones `if exists` o `restrict` para eliminar la extensión. 

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

**Limitaciones**
+ La opción CASCADE no es compatible.