sp_execute_postgresql - Amazon Aurora

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 ] [SCHEMA schema_name] [VERSION version]'; 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.