Oracle 12c upgrade – backwards compatible with 11g

oracle

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)

Best Answer

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 11.2.0.4 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.