Oracle 兼容性任务

来自 PostgreSQL wiki
跳转到导航跳转到搜索

在 PostgreSQL 中提高 Oracle 兼容性的实现工作

以下是提高 PostgreSQL 及其周边环境中 Oracle 兼容性的一些工作和研究项目。这基于 Peter Eisentraut 在 PGCon 2008 上的演讲。请添加您的想法。

语法

  • 引号标识符,大小写折叠
  • MINUS vs. EXCEPT(检查 Oracle 是否也支持 EXCEPT)

数据类型

  • 将 varchar2 作为 varchar 的别名实现 [orafce]
  • 将 clob 作为 text 的别名实现 [PG core]
  • 将 long 作为 text 或 clob 的别名实现? [orafce]
  • 根据需要实现 nchar、nvarchar2、nclob [orafce 和 PG core]
  • 将 number 作为 numeric 的别名实现 [orafce]
  • 将 binary_float、binary_double 作为 float4、float8 的别名实现 [orafce]
  • 实现 blob [PG core]
  • 实现 raw、long raw [orafce]
  • 想出一种方法来允许 Oracle 对 date 的行为(???)
  • 修复 interval 类型使其与 SQL 标准兼容。

空值行为

我想看到一个关于空值在 Oracle 中如何真正工作的详细分析和定义。我们可能可以实现一些变通方法,使行为在可选情况下更加相似,但目前 Oracle 的行为看起来很奇怪,而且完全不一致。

序列

  • 将 NOCACHE 子句添加到 CREATE SEQUENCE

格式化

  • 为 to_char 添加更多功能和鲁棒性。
  • 也许可以添加用于 NLS_ 设置的自定义变量,这些变量会在内部更改正确的 PostgreSQL 设置。

触发器

  • 允许在一个语句中创建触发器和关联的函数。该函数将作为依赖项自动创建

PL/pgSQL

  • 使 DECLARE 可选
  • 使 PERFORM 在过程调用中可选