ivorysql_ora
Oracle 兼容扩展
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
ivorysql | 1.0 | SIM | Apache-2.0 | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 9140 | ivorysql_ora | 否 | 是 | 否 | 是 | 否 | 否 | sys |
| 9150 | ora_btree_gin | 否 | 是 | 否 | 是 | 是 | 否 | sys |
| 9160 | ora_btree_gist | 否 | 是 | 否 | 是 | 是 | 否 | sys |
| 9170 | pg_get_functiondef | 否 | 是 | 否 | 是 | 是 | 否 | - |
| 9180 | plisql | 否 | 是 | 否 | 是 | 是 | 否 | pg_catalog |
| 9190 | gb18030_2022 | 否 | 是 | 否 | 是 | 是 | 否 | pg_catalog |
| 相关扩展 | |
|---|---|
| 下游依赖 | ora_btree_gin ora_btree_gist |
from contrib/ivorysql_ora/ivorysql_ora.control and package metadata
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.0 | 1817161514 | ivorysql | - |
| RPM | PIGSTY | 5.1 | 1817161514 | ivorysql5 | - |
| DEB | PIGSTY | 5.1 | 1817161514 | ivorysql-5 | - |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el8.aarch64 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el9.x86_64 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el9.aarch64 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el10.x86_64 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el10.aarch64 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| d12.x86_64 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| d12.aarch64 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| d13.x86_64 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| d13.aarch64 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| u22.x86_64 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| u22.aarch64 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| u24.x86_64 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| u24.aarch64 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
安装
您可以直接安装 ivorysql 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
pig repo add pgsql -u # 添加仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install ivorysql; # 当前活跃 PG 版本安装
pig ext install -y ivorysql -v 18 # PG 18
dnf install -y ivorysql5 # PG 18
apt install -y ivorysql-5 # PG 18
创建扩展:
CREATE EXTENSION ivorysql_ora;
用法
ivorysql_ora 扩展作为 IvorySQL 项目的一部分,为 PostgreSQL 提供 Oracle 兼容特性。它添加了 Oracle 兼容的数据类型、函数和 PL/SQL 行为。
启用
CREATE EXTENSION ivorysql_ora;
Oracle 兼容数据类型
该扩展添加了 Oracle 风格的数据类型,包括:
NUMBER/NUMBER(p,s)- Oracle 兼容的数值类型VARCHAR2(n)- Oracle 兼容的变长字符串DATE- 带时间部分的 Oracle 风格 DATEBINARY_FLOAT/BINARY_DOUBLE- IEEE 浮点类型
Oracle 兼容函数
提供 Oracle 风格的字符串操作、日期运算、数值操作和类型转换内置函数,行为与 Oracle 语义一致。
兼容模式
IvorySQL 支持 Oracle 兼容模式,可更改解析器行为:
SET compatible_mode TO oracle; -- 启用 Oracle 兼容
SET compatible_mode TO pg; -- 恢复为标准 PostgreSQL
在 Oracle 模式下,SQL 解析器接受 Oracle 风格语法,包括:
- Oracle 风格外连接(
(+)语法) CONNECT BY层次查询- Oracle 风格序列(
sequence.NEXTVAL) - 包风格对象引用