sp_execute_postgresql
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
sp_execute_postgresql [ @stmt = ] statement
Argumentos
- 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
CREATE EXTENSION
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 ] [SCHEMAschema_name
] [VERSIONversion
]';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_superuser 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
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
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.