babelfishpg_tsql

SQL Server SQL语法兼容性扩展

概览

扩展包名版本分类许可证语言
babelfish5.5.0SIMApache-2.0C
ID扩展名BinLibLoadCreateTrustReloc模式
9300babelfishpg_common-
9310babelfishpg_tsql-
9320babelfishpg_tds-
9330babelfishpg_money-
相关扩展babelfishpg_common uuid-ossp babelfishpg_money pg_hint_plan tds_fdw session_variable orafce pgtt db_migrator
下游依赖babelfishpg_tds

special case: this extension only works on wiltondb kernel fork

版本

类型仓库版本PG 大版本包名依赖
EXTPIGSTY5.5.01817161514babelfishbabelfishpg_common, uuid-ossp
RPMPIGSTY5.5.01817161514babelfish_$vbabelfishpg_$v, antlr4-runtime413
DEBPIGSTY5.5.01817161514babelfishpg-$v-babelfishbabelfishpg-$v, libantlr4-runtime413
OS / PGPG18PG17PG16PG15PG14
el8.x86_64PIGSTY MISSPIGSTY 5.5.0PIGSTY MISSPIGSTY MISSPIGSTY MISS
el8.aarch64PIGSTY MISSPIGSTY 5.5.0PIGSTY MISSPIGSTY MISSPIGSTY MISS
el9.x86_64PIGSTY MISSPIGSTY 5.5.0PIGSTY MISSPIGSTY MISSPIGSTY MISS
el9.aarch64PIGSTY MISSPIGSTY 5.5.0PIGSTY MISSPIGSTY MISSPIGSTY MISS
el10.x86_64PIGSTY MISSPIGSTY 5.5.0PIGSTY MISSPIGSTY MISSPIGSTY MISS
el10.aarch64PIGSTY MISSPIGSTY 5.5.0PIGSTY MISSPIGSTY MISSPIGSTY MISS
d12.x86_64PIGSTY MISSPIGSTY 5.5.0PIGSTY MISSPIGSTY MISSPIGSTY MISS
d12.aarch64PIGSTY MISSPIGSTY 5.5.0PIGSTY MISSPIGSTY MISSPIGSTY MISS
d13.x86_64PIGSTY MISSPIGSTY 5.5.0PIGSTY MISSPIGSTY MISSPIGSTY MISS
d13.aarch64PIGSTY MISSPIGSTY 5.5.0PIGSTY MISSPIGSTY MISSPIGSTY MISS
u22.x86_64PIGSTY MISSPIGSTY 5.5.0PIGSTY MISSPIGSTY MISSPIGSTY MISS
u22.aarch64PIGSTY MISSPIGSTY 5.5.0PIGSTY MISSPIGSTY MISSPIGSTY MISS
u24.x86_64PIGSTY MISSPIGSTY 5.5.0PIGSTY MISSPIGSTY MISSPIGSTY MISS
u24.aarch64PIGSTY MISSPIGSTY 5.5.0PIGSTY MISSPIGSTY MISSPIGSTY MISS

构建

您可以使用 pig build 命令构建 babelfish 扩展的 RPM / DEB 包:

pig build pkg babelfish         # 构建 RPM / DEB 包

安装

您可以直接安装 babelfish 扩展包的预置二进制包,首先确保 PGDGPIGSTY 仓库已经添加并启用:

pig repo add pgsql -u          # 添加仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

pig install babelfish;          # 当前活跃 PG 版本安装
pig ext install -y babelfish -v 17  # PG 17
dnf install -y babelfish_17       # PG 17
apt install -y babelfishpg-17-babelfish   # PG 17

创建扩展

CREATE EXTENSION babelfishpg_tsql CASCADE;  -- 依赖: babelfishpg_common, uuid-ossp

用法

babelfishpg_tsql: SQL Server Transact SQL 兼容性

babelfishpg_tsql 扩展作为 Babelfish 项目的一部分,为 PostgreSQL 提供 Microsoft SQL Server Transact-SQL(T-SQL)兼容性。为 SQL Server 编写的应用程序可以连接到 PostgreSQL 并运行查询,只需最小的更改。

启用

CREATE EXTENSION babelfishpg_tsql;

关键特性

  • T-SQL 语言支持:理解 T-SQL 语法,包括存储过程、函数、触发器和批处理
  • SQL Server 线协议:应用程序可以使用 TDS(表格数据流)协议在 1433 端口连接
  • 系统过程:常用的 sp_ 系统存储过程可用
  • 系统视图:SQL Server 目录视图(如 sys.tablessys.columnssys.objects
  • 多数据库语义:支持 SQL Server 风格的数据库/模式分离

支持的 T-SQL 特性

  • BEGIN...END 块、IF...ELSEWHILE 循环
  • TRY...CATCH 错误处理
  • 临时表(#temp##global_temp
  • 表变量(DECLARE @t TABLE (...)
  • IDENTITY 列和 @@IDENTITY / SCOPE_IDENTITY()
  • TOP 子句、OUTPUT 子句
  • MERGE 语句
  • 公共表表达式(CTE)
  • 同一实例内的跨数据库查询
  • EXEC / EXECUTE 动态 SQL
  • SQL Server 风格字符串连接和 NULL 处理
  • PRINTRAISERROR 语句

通过 TDS 协议连接

应用程序可以使用 SQL Server 驱动程序(JDBC、ODBC、ADO.NET)连接到 TDS 监听端口(默认 1433):

Server: hostname
Port: 1433
Database: mydb

注意事项

  • 需要 babelfishpg_common 扩展
  • Babelfish for PostgreSQL 项目的一部分(Apache 2.0 / PostgreSQL 许可证)
  • 并非所有 T-SQL 特性都受支持;请查看 Babelfish 兼容性参考

最后修改 2026-03-14: update extension metadata (953cbd0)