Oracle在两个数据库

时间:2015-11-19 13:19:26

标签: oracle oracle11g

我们有一个遗留的应用程序,我们无法修改连接到Oracle 11g,并在某些时候运行查询并返回结果。但是,应用程序使用Oracle中的“生成”列名来读取结果。

考虑以下问题:

select nvl(1,0.0) from DUAL;

由于此查询未指定别名,因此生成的列名称将为“nvl(1,0.0)”

但是在另一台服务器上,生成的列名是“nvl(1,0)”(注意0而不是0.0),应用程序失败。

是否有可以为Oracle更改的配置?我搜索了格式化和区域设置配置,它们在两台服务器上都是相同的。

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

事实证明,有一个名为cursor_sharing的参数设置为FORCE而不是EXACT

select nvl(1,0.0) from DUAL;

上面的查询根据参数的值返回以下内容:

FORCE=NVL(1,0)
EXACT=NVL(1,0.0)