Are there any application code changes required for SQL or PL/SQL to continue to work in 12c, or is it backwards compatible with 11g? Are there any queries that would work in 11g that break in 12g?

I remember having to change some queries when upgrading 10g to 11g, but it turned out to be a bug in 10g that was fixed in 11g - the queries should have failed in 10g to begin with. (See: https://stackoverflow.com/questions/4269205/why-doesnt-oracle-raise-ora-00918-column-ambiguously-defined-for-this-query)

1 Answer 1


Usual rules apply. Code changes should not be required but something will break if code is more complex. Also there will be some SQL plans regressions.

Official documentation about deprecated features is there: Deprecated and Desupported Features for Oracle Database 12c

Also you can check Metalink note 567171.1 about _fix_control parameter. This parameter is used to enable or disable certain bugfixes which affect query behaviour. In the view V$SYSTEM_FIX_CONTROL contains 854 rows which means that there are so many potential quirks while upgrading to the newer version of Oracle Database. I am sure that 12c contains much more rows.

  • Can you provide more specifics around "if code is more complex"? If code changes should not be required, then what exactly would break that assumption? (Other than the specific list of deprecated/desupported features in your link) May 23, 2015 at 1:24
  • Expanded anwser with _fix_control parameter. May 23, 2015 at 7:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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