sp_execute_postgresql
T-SQL 엔드포인트에서 PostgreSQL 문을 실행할 수 있습니다. 이렇게 하면 문을 실행하기 위해 T-SQL 포트를 종료할 필요가 없으므로 애플리케이션이 간소화됩니다.
구문
sp_execute_postgresql [ @stmt = ] statement
인수
- [ @stmt ] 문
-
인수는 데이터 유형 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 EXTENSION을 사용하여 새 확장 버전으로 업그레이드할 수 있습니다.
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 옵션은 지원되지 않습니다.