We have a legacy application we cannot modify that connects to Oracle 11g and at some point runs a query and returns a result. The application however is using the "generated" column name from Oracle to read the result.

Consider the following query:

select nvl(1,0.0) from DUAL;

As this query does not specify an alias, the generated column name would be "nvl(1,0.0)"

However on another server the generated column name is "nvl(1,0)" (notice 0 and not 0.0) and the application fails.

Is there a configuration that can be changed for Oracle? I've searched for formatting and locale configurations and they are equal on both servers.

Any help would be appreciated

  • A last resort would be to use DBMS_ADVANCED_REWRITE.
    – Brian
    Commented Nov 20, 2015 at 16:26

1 Answer 1


It turns out there's a parameter called cursor_sharing that was set to FORCE instead of EXACT

select nvl(1,0.0) from DUAL;

The query above returns the following depending on the value of the parameter:


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.