![difference between oracle 10g and 11g and 12c difference between oracle 10g and 11g and 12c](https://oracle-base.com/articles/11g/images/compare-tables/compare-tables.png)
Yes, of course, but listing them would exceed the scope of this answer.Īre there behavioral differences between a valid 9i SQL statement and the same statement in 11g
![difference between oracle 10g and 11g and 12c difference between oracle 10g and 11g and 12c](https://www.mythics.com/images/uploads/images/oracle_database_matrix.jpg)
( select mod(12,3) from dual is valid in both versions)Īre there new features in 11g that were not available in 9i
#Difference between oracle 10g and 11g and 12c mod#
select 12 mod 3 from dual is valid in Oracle 8, but not in Oracle 9. For example, IIRC between Oracle 8 and 9, the mod function became illegal to use as an infix operator i.e. There have been occasions where previously valid SQL statements became invalid in a later version. Is a SQL statement that was valid in 9i still valid in 11g Other SQL statements perform differently in 11g because of different optimizer settings (particularly if you are moving from the rule-based optimizer in 9i). That caused lots of developers to have to go back through code to add ORDER BY clauses. When the hash group by operation was added in 10.2, Oracle no longer always sorted the data as a byproduct of grouping the data. This was never an assumption that Oracle encouraged but Oracle happened to sort the data in order to do the GROUP BY. For example, a large number of folks assumed that they didn't need to specify an ORDER BY clause if the query contained a GROUP BY. If you are asking about behavioral differences, those are primarily do to the reliance on faulty assumptions. If you are interested in features that have been added in different versions of Oracle, you'd be well served to look through the SQL Language Improvements chapter of the New Features Guide and the What's New in the SQL Language chapter of the SQL Reference. Of course, there are occasions where an older version of Oracle accepted a SQL statement that was actually syntactically invalid rather than raising an error where a later version correctly raises an error. Oracle works very hard to ensure backwards compatibility. A SQL statement that was valid in 9i is still valid in 11g.