sp_execute_postgresql
É possível executar instruções PostgreSQL do endpoint T-SQL. Isso simplifica suas aplicações, pois você não precisa sair da porta T-SQL para executar essas instruções.
Sintaxe
sp_execute_postgresql [ @stmt = ] statement
Argumentos
- declaração [ @stmt ]
-
O argumento é um datatype varchar. Esse argumento aceita declarações do dialeto PG.
nota
Você só pode passar uma declaração do dialeto PG como argumento; caso contrário, ela gerará o seguinte erro.
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
Observações de uso
CRIAR EXTENSÃO
Cria e carrega uma nova extensão no banco de dados atual.
1>
EXEC sp_execute_postgresql 'create extension [ IF NOT EXISTS ]<extension name>
[ WITH ] [SCHEMAschema_name
] [VERSIONversion
]';2>
go
O exemplo a seguir mostra como criar uma extensão:
1>
EXEC sp_execute_postgresql 'create extension pg_stat_statements with schema sys version "1.10"';2>
go
Use o comando a seguir para acessar objetos de extensão:
1>
select * from pg_stat_statements;2>
go
nota
Se o nome do esquema não for fornecido explicitamente durante a criação da extensão, por padrão, as extensões serão instaladas no esquema público. Você deve fornecer o qualificador de esquema para acessar os objetos de extensão, conforme mencionado abaixo:
1>
select * from [public].pg_stat_statements;2>
go
Extensões compatíveis
As seguintes extensões disponíveis com o Aurora PostgreSQL funcionam com o Babelfish.
pg_stat_statements
tds_fdw
fuzzystrmatch
Limitações
Os usuários precisam ter a função sysadmin no T-SQL e rds_superuser no postgres para instalar as extensões.
As extensões não podem ser instaladas em esquemas criados pelo usuário e também em esquemas dbo e guest para bancos de dados master, tempdb e msdb.
Não há compatibilidade para a opção CASCADE.
ALTERAR EXTENSÃO
Você pode fazer a atualização para uma nova versão de extensão usando a extensão ALTER.
1>
EXEC sp_execute_postgresql 'alter extension <extension name> UPDATE TO <new_version>';2>
go
Limitações
Só é possível fazer a atualização da versão da extensão usando a instrução ALTER Extension. Não há compatibilidade para outras operações.
EXTENSÃO DROP
Elimina a extensão especificada. Você também pode usar as opções if exists
ou restrict
para remover a extensão.
1>
EXEC sp_execute_postgresql 'drop extension <extension name>';2>
go
Limitações
Não há compatibilidade para a opção CASCADE.