orafce
概览
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 9100 | orafce | 否 | 是 | 否 | 是 | 否 | 否 | - |
| 相关扩展 | ivorysql_ora db2fce babelfishpg_tsql pg_dbms_metadata pg_statement_rollback pgtt session_variable tds_fdw pg_dbms_lock pg_dbms_job |
|---|
Upstream distribution 4.16.13 fixes possible dbms_sql crashes; SQL/control version is 4.16. Local PGDG package matrix has RPM 4.16.12 and DEB 4.16.13 on 2026-10-10.
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PGDG | 4.16.13 | 1817161514 | orafce | - |
| RPM | PGDG | 4.16.12 | 1817161514 | orafce_$v | - |
| DEB | PGDG | 4.16.13 | 1817161514 | postgresql-$v-orafce | - |
安装
您可以直接安装 orafce 扩展包的预置二进制包,首先确保 PGDG 仓库已经添加并启用:
使用 pig 或者是 apt/yum/dnf 安装扩展:
创建扩展:
用法
来源:
orafce 提供兼容 Oracle 的函数、类型与工具包。发行版 4.16.13 仍使用控制文件和 SQL 扩展版本 4.16;两个版本号分别描述不同层次。
核心工作流
类型与工具包
需要在 Oracle 风格日期中保留时分秒时,应使用 oracle.date。日期函数包括 oracle.add_months、oracle.last_day、oracle.next_day、oracle.months_between 及舍入、截断操作。应显式限定 oracle.decode、oracle.greatest 和 oracle.least 的模式,否则 PostgreSQL 解析器可能采用内置语义。
dbms_output 管理缓冲输出;dbms_pipe 与 dbms_alert 支持会话通信。dbms_sql 提供动态游标和带类型的列值读取。dbms_utility、dbms_assert、plvstr、plvchr 与 plvsubst 提供诊断、校验及字符串辅助功能。这些兼容函数不会将 PostgreSQL 变成 Oracle,也不提供 Oracle 过程语言运行时。
文件访问与 4.16.12 变更
utl_file 在管理员配置的允许目录内访问服务端文件;应限制授权与文件系统权限。实现会拒绝路径规范化后仍然存在的父目录引用,文件路径应避免使用父目录引用。4.16.12 发布说明明确列出的修复是 dbms_sql 可能发生的崩溃。
安装需要超级用户,并创建固定模式;无需预加载。修改 search_path 前应遵循上游配置说明。SQL 版本仍为 4.16,因此已经安装的 4.16 扩展不会仅因二进制发行版修补就获得新的 SQL 版本。应按需重新连接以使用更新后的共享库,并对照实际安装的发行版验证行为。
4.16.13 修补
发行版 4.16.13 进一步修复可能发生的 dbms_sql 崩溃。control 版本仍为 4.16,应更新共享库发行版,不要使用不存在的 4.16.13 SQL 升级版本。
这个页面对您有帮助吗?
感谢反馈,我们会据此改进这篇文档。
哪里没有解决?(可选)