sp_execute_postgresql
您可以从 T-SQL 终端节点执行 PostgreSQL 语句。这简化了您的应用程序,因为您无需退出 T-SQL 端口即可执行这些语句。
语法
sp_execute_postgresql [ @stmt = ] statement
参数
- [ @stmt ] statement
-
参数的数据类型为 varchar。此参数接受 PG 方言语句。
注意
您只能传递一个 PG 方言语句作为参数,否则会引发以下错误。
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
使用说明
CREATE EXTENSION
创建新的扩展并将其加载到当前数据库中。
1>
EXEC sp_execute_postgresql 'create extension [ IF NOT EXISTS ]<extension name>
[ WITH ] [SCHEMAschema_name
] [VERSIONversion
]';2>
go
以下示例说明了如何创建扩展:
1>
EXEC sp_execute_postgresql 'create extension pg_stat_statements with schema sys version "1.10"';2>
go
使用以下命令访问扩展对象:
1>
select * from pg_stat_statements;2>
go
注意
如果在创建扩展期间未明确提供模式名称,则默认情况下,扩展将安装在公共模式中。您必须提供模式限定符才能访问扩展对象,如下所述:
1>
select * from [public].pg_stat_statements;2>
go
支持的扩展
Aurora PostgreSQL 提供的以下扩展适用于 Babelfish。
pg_stat_statements
tds_fdw
fuzzystrmatch
限制
用户需要在 T-SQL 上具有 sysadmin 角色,在 postgres 上具有 rds_superuser 角色才能安装扩展。
扩展不能安装在用户创建的模式中,也不能安装在主数据库、tempdb 和 msdb 数据库的 dbo 和访客模式中。
不支持 CASCADE 选项。
ALTER EXTENSION
您可以使用 ALTER 扩展升级到新的扩展版本。
1>
EXEC sp_execute_postgresql 'alter extension <extension name> UPDATE TO <new_version>';2>
go
限制
您只能使用 ALTER Extension 语句升级扩展的版本。不支持其它操作。
DROP EXTENSION
删除指定的扩展。您也可以使用 if exists
或 restrict
选项删除扩展。
1>
EXEC sp_execute_postgresql 'drop extension <extension name>';2>
go
限制
不支持 CASCADE 选项。