先说一点背景。我的公司正在评估是否将我们的 Informix 数据库迁移到 Oracle 10g。我们有几个 ESQL/C 程序。我已经通过 Oracle 迁移工作台运行了一些,并且一直在通过一些测试感到困惑。现在我开始意识到一些事情。
首先,我们有根本不处理空值的动态 sql 语句。根据我的阅读,我要么必须手动修改查询以利用 nvl() 函数,要么实现指标变量。有人可以确认是否需要手动修改?我们必须对转换后的 ESQL/C 程序进行的手动更改越少越好。
其次,我们有几个从各种表等中提取日期的查询,并且在 Informix 中,日期被视为 long 类型,即自 1899 年 12 月 31 日以来的天数。
在 Pro*C 中,日期被选择为什么格式?我知道这不是数字,因为我尝试在我的长变量中选择日期字段并得到 Oracle 错误,指出“预期为 NUMBER,但得到了一个日期”。所以我假设我们必须修改我们选择日期字段的方式 - 要么以转换的方式选择一个日期字段,使其变得很长(即,自 1899 年 12 月 31 日以来的天数),要么更改主机变量以匹配 Oracle 返回的内容(那是什么,字符串?)。