2015-11-19 54 views
1

我们有一个遗留应用程序,我们无法修改它连接到Oracle 11g,并且在某些时候运行查询并返回结果。然而,应用程序正在使用Oracle的“生成”列名称来读取结果。Oracle在两个数据库中生成的列别名不同

考虑下面的查询:

select nvl(1,0.0) from DUAL; 

由于此查询不指定别名,生成列名称将是“NVL(1,0.0)”

然而另一台服务器生成的列上名称是“nvl(1,0)”(通知0而不是0.0),并且应用程序失败。

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

任何帮助,将不胜感激

回答

1

原来有这么被设置为强制使用完全

select nvl(1,0.0) from DUAL; 

上面的查询返回根据参数的值下面的参数调用CURSOR_SHARING:

FORCE=NVL(1,0) 
EXACT=NVL(1,0.0) 
相关问题