Oracle 20c, the expected next release of Oracle database will not happen. When Oracle moved to associate its version numbers with year numbers as of version 18c, few could imagine a year like 2020. In this blog post, I explore this news, announced in Oracle support document Doc ID 742060.1.
Oracle 18c marked a new era for Oracle version numbers. The previous Oracle version numbering ended with version 12c, and jumped immediately to version 18c, to be associated with 2018, followed by 19C, associated with the year 2019. This was probably a good move to skip version 13. By some estimates, 10 percent of the population has a fear of the number 13. Fear of the number 13 has its own designation in the area of abnormal psychology: Triskaidekaphobia. So pervasive is this fear in our culture, that many buildings do not have 13th floors, and NASA made sure to never have a Space Shuttle mission with the designation STS-13, especially after the disaster of Apollo 13. Following this, Oracle 20c would have corresponded to the year 2020.
Fear of the number 13 is largely a western cultural phenomenon, but now Oracle was faced with versioning a release of their flagship product with “20”, as in the year which just ended, 2020. The year 2020 is one we all hope to forget, put in the rear-view mirror. It will have lasting effects on all of us, no matter where you reside in the world. In Oracle support document 742060.1 dated December 17, 2020, Oracle has made the following unusual statement, positioned in the middle of this document:
“Oracle is mindful of the unprecedented economic and business disruption our customers faced in 2020. We decided to not promote our Database 20c Preview version to General Availability. Instead, we incorporated all of the 20c functionality into the 21c release and made 21c available in our Autonomous Database Free Tier so that all can test-drive the new features and enhancements for free.”
In a December 8, 2020 blog post, Oracle Vice President of Database Product Management, William Hardie is more sanguine. He makes no mention of the hardships of 2020 or that Oracle 20c will not be made generally available. His blog post titled “Introducing Oracle Database 21c” provides a list of the most noteworthy features in version 21c. I cover a few of these later in this post.
Oracle version 21c is now available Oracle’s cloud delivery platforms:
Those of you who want to run 21c on-premises must wait for a release date to be announced in 2021.
Also, be aware that Oracle 21c is an innovation release, which will never have long term support available. Innovation releases should not be used as a next version for a mission critical database supporting a business function, like your ERP system. Rather, innovation releases are intended to give a taste of features that will be a part the next Long-Term Release, so developers can “tinker” with these features. For the official details on the innovation vs. long term release paradigm consult Oracle Doc ID 742060.1.
Oracle 21C is full of new and compelling features. With an eye to the future, and a better world in 2021, I will highlight features that you can use immediately, that will provide immediate benefit or capability.
Oracle support for JSON began with version 12C, allowing for JSON documents to be queried, indexed, and manipulated much like data stored in a traditional data table. Since 12C, JSON documents were stored in varchar column types, or as a BLOB or CLOB. With 21C, JSON documents have their own inherent data type that can be used for columns. The primary upside to this is performance. Oracle claims a 4x to 5x performance increase for nominal operations, and a whopping 20x to 30x performance increase for large JSON documents. Version 21C also adds an intriguing “JSON_TRANSFORM” function that allows easy manipulation of JSON data from and UPDATE statement that rivals the ease and simplicity of coding this in a language like Python.
One of Oracle’s strengths over other database platforms has been the power and flexibility of server-side code, supported by code containers like stored procedures and functions. At first glance, the new 21C SQL Macros seem to replicate the functionality of Oracle’s existing functions, but the differences are quite dramatic. Oracle functions are executable objects that require CPU resource intensive context switches each time they are used. Anyone who has made extensive used of functions is aware that functions that are invoked repeatedly over large amounts of data can have a dramatic impact on performance.
SQL Macros are not executable objects, but simply a text substitution mechanism similar to those found in other programming languages, similar to those available with the “C” language preprocessor. When a SQL Macro is found, it is replaced by the SQL it contains, along with parameters that would normally be sent in a function call, avoiding a costly context switch. SQL macros can also be used in parameterized views and polymorphic tables.
This new feature is only of interest to development efforts associated with blockchain. This new table is in an insert only table type, meaning the data stored is effectively immutable. A hash value is calculated for each row to ensure data security of values stored. Data stored in Blockchain tables cannot be deleted, updated, or truncated, so users can trust that data is accurate.
Oracle 20c was gone before it even arrived, that being said, 21C is in. You are encouraged to further explore these new features. Next month we will begin our exploration of Multitenant, with a quick overview and basic management tasks associated with it.