在 Oracle 上执行 Informix DDL 脚本

Execute Informix DDL script on Oracle

如果我有一个用于数据库的 Informix DDL 脚本,并且我想 运行 在 Oracle 上使用此脚本来创建具有相同结构、索引、数据类型和约束的等效数据库。

要成功执行脚本,我应该遵循哪些步骤?在执行过程中我应该考虑哪些因素?

查看从 Informix 到 Oracle 的官方资源: http://www.oracle.com/technetwork/database/migration/informix-085032.html

一般来说,即使只是在 Informix 和 Oracle 之间传输 DDL,也是一个 non-trivial 的提议。即使您不使用一些更奇特的类型(例如 user-defined 类型,或列表、集合或行类型),语法上也有许多细节差异。这是从 Informix 的角度编写的;对有关 Oracle 的陈述持保留态度。

  • Oracle 使用 VARCHAR2; Informix 没有(但 Informix 使用的某些类型不应转换为 Oracle 的 VARCHAR — 它应该是 VARCHAR2)。
  • Oracle 有一种基础数字类型; Informix 有很多。但是,Oracle 可以识别大多数类型名称。
  • Oracle 的 DATE 类型包含时间部分; Informix 没有。
  • Informix 具有深奥的类型,例如 DATETIME MONTH TO MINUTE(规范的 odd-ball 示例),在 Oracle 中没有现成的等价物。
  • 您需要仔细检查 BYTE、TEXT、BLOB 和 CLOB 类型并进行相应的翻译。
  • 某些类型的限制可能有所不同。这些可能会导致翻译出现问题。
  • 在约束的命名上,Informix 和世界其他地方有吹毛求疵的区别(Informix 把约束名放在约束后面;标准把约束名放在前面)。
  • …毫无疑问还有许多其他问题…

有一些工具可用于协助从 Oracle 迁移到 Informix。我假设有工具可以帮助反向迁移,但我不熟悉它们。