babelfishpg_tsql
SQL Server SQL语法兼容性扩展
仓库
https://babelfishpg.org/
https://babelfishpg.org/
源码
babelfishpg-17.8-5.5.0.tar.gz
babelfishpg-17.8-5.5.0.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
babelfish | 5.5.0 | SIM | Apache-2.0 | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 9300 | babelfishpg_common | 否 | 是 | 否 | 是 | 否 | 是 | - |
| 9310 | babelfishpg_tsql | 否 | 是 | 否 | 是 | 否 | 是 | - |
| 9320 | babelfishpg_tds | 否 | 是 | 是 | 是 | 否 | 是 | - |
| 9330 | babelfishpg_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 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 5.5.0 | 1817161514 | babelfish | babelfishpg_common, uuid-ossp |
| RPM | PIGSTY | 5.5.0 | 1817161514 | babelfish_$v | babelfishpg_$v, antlr4-runtime413 |
| DEB | PIGSTY | 5.5.0 | 1817161514 | babelfishpg-$v-babelfish | babelfishpg-$v, libantlr4-runtime413 |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PIGSTY MISS | PIGSTY 5.5.0 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el8.aarch64 | PIGSTY MISS | PIGSTY 5.5.0 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el9.x86_64 | PIGSTY MISS | PIGSTY 5.5.0 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el9.aarch64 | PIGSTY MISS | PIGSTY 5.5.0 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el10.x86_64 | PIGSTY MISS | PIGSTY 5.5.0 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el10.aarch64 | PIGSTY MISS | PIGSTY 5.5.0 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| d12.x86_64 | PIGSTY MISS | PIGSTY 5.5.0 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| d12.aarch64 | PIGSTY MISS | PIGSTY 5.5.0 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| d13.x86_64 | PIGSTY MISS | PIGSTY 5.5.0 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| d13.aarch64 | PIGSTY MISS | PIGSTY 5.5.0 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| u22.x86_64 | PIGSTY MISS | PIGSTY 5.5.0 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| u22.aarch64 | PIGSTY MISS | PIGSTY 5.5.0 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| u24.x86_64 | PIGSTY MISS | PIGSTY 5.5.0 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| u24.aarch64 | PIGSTY MISS | PIGSTY 5.5.0 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
构建
您可以使用 pig build 命令构建 babelfish 扩展的 RPM / DEB 包:
pig build pkg babelfish # 构建 RPM / DEB 包
安装
您可以直接安装 babelfish 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
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 扩展作为 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.tables、sys.columns、sys.objects) - 多数据库语义:支持 SQL Server 风格的数据库/模式分离
支持的 T-SQL 特性
BEGIN...END块、IF...ELSE、WHILE循环TRY...CATCH错误处理- 临时表(
#temp、##global_temp) - 表变量(
DECLARE @t TABLE (...)) IDENTITY列和@@IDENTITY/SCOPE_IDENTITY()TOP子句、OUTPUT子句MERGE语句- 公共表表达式(CTE)
- 同一实例内的跨数据库查询
EXEC/EXECUTE动态 SQL- SQL Server 风格字符串连接和 NULL 处理
PRINT和RAISERROR语句
通过 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 兼容性参考