2025年4月22日,由中国开源软件推进联盟PG分会主办,PostgreSQL ACE/PG分会北京&天津用户组负责人刘华阳联合发起的“PostgreSQL数据库技术峰会北京站”落幕。
本次活动以“PG与AI融合”为主题,结合当下AI大模型应用、国产化趋势,邀请社群技术专家围绕产品特性、应用案例、运维经验、技术演进、行业方向等进行分享,推动PostgreSQL在中国的发展。
IvorySQL 受邀参与了本次活动:IvorySQL 研发工程师矫顺田为大家带来了主题分享——《IvorySQL V4:双解析器架构下的兼容性创新实践》。
分享内容回顾
在本次分享中,主要分享了以下内容:
IvorySQL 通过双解析器架构(PG/Oracle解析器)实现Oracle语法兼容,支持1521端口默认Oracle模式与5432端口PG模式自由切换;新增Package包管理、不可见列、XML函数等Oracle兼容功能,提升PL/SQL迁移效率;结合Stackgres和Data Bene合作推动全球化社区生态,强化金融场景核心系统替换能力。
以下是具体内容:
一、兼容性全景
-
核心兼容特性
- Oracle 兼容框架:
- 支持 PL/iSQL、Oracle Package(包管理)、不可见列(显式引用访问)、XML 函数(新增 11 个函数)、序列(CACHE/SCALE/SESSION 等选项)等。
- 关键创新:
- 不可见列:通过
ALTER TABLE
控制列的可见性,支持应用无缝升级。 - Oracle Package:支持包级别权限控制、缓存机制,提升模块化开发效率。
- 不可见列:通过
- Oracle 兼容框架:
-
实际项目案例(国内某金融系统)
- 目标:替换 Oracle 存储过程,解决总账等核心系统需求。
- 成果:
- 兼容 Oracle 分区索引、集合数据类型、系统视图等,性能与稳定性达标。
- 攻克海量数据读取内存溢出问题,深度支持 Oracle Package 功能。
二、双解析器架构设计
-
架构概览
- 基于 PostgreSQL 17:扩展双解析器(PG SQL 解析器 + Oracle SQL 解析器)、双端口(5432 默认 PG 模式,1521 默认 Oracle 模式)。
- 动态切换兼容模式:通过
compatible_mode
参数或端口选择解析器,降低语法干扰。
-
关键技术实现
- 解析器钩子机制:通过
sql_raw_parser
动态绑定ora_raw_parser
或standard_raw_parser
。 - 插件化设计:内置
IvorySQL_ORA
插件,实现 Oracle 数据类型、系统视图、MERGE 命令等兼容功能。
- 解析器钩子机制:通过
三、社区发展与未来展望
-
未来技术方向
- 增强 NLS 参数、PL/iSQL、Force View 等功能兼容性。
- 基于 PostgreSQL 18 开发 IvorySQL V5,优化云原生支持。
-
全球化合作
- OnGres(西班牙):将 IvorySQL 集成至云原生产品 StackGres,简化部署流程。
- Data Bene(法国):推动 Oracle 迁移项目与社区共建。
-
社区参与激励
- 贡献方式:源码提交、文档维护、BUG 修复、技术日志撰写等。
- 奖励机制:荣誉证书、限量周边(卫衣、背包、马克杯等)。
作为一款基于 PostgreSQL 并深度兼容 Oracle 的开源数据库系统,IvorySQL 始终怀抱开源热情,致力于开源社区建设。未来,期待更多技术爱好者加入进来,为 IvorySQL 社区发展壮大提供源源不断的动力!
- 关于 IvorySQL - IvorySQL 是由瀚高股份主导研发的一款开源的兼容 Oracle 的 PostgreSQL。IvorySQL 与 PostgreSQL 国际社区紧密合作,保持与最新 PG 版本内核同步,为用户提供便捷的升级体验。基于双 Parser 架构设计,100% 与原生 PostgreSQL 兼容,支持丰富的 PostgreSQL 周边工具和扩展,并根据用户需求提供定制化工具。同时,IvorySQL 提供更全面灵活的 Oracle 兼容功能,具备高度的 SQL 和 PL/SQL 兼容性能够为企业构建更加高效、稳定和灵活的数据库解决方案。 官网:www.ivorysql.org GitHub(欢迎点击 star 收藏哦):github.com/IvorySQL/Iv… 社群:微信搜索“ivorysql_official” 添加小助理进群
本文由博客一文多发平台 OpenWrite 发布!