Cegal tech blog

Oracle Database 23ai – Start Now!

Written by Kim Berg Hansen | Aug 22, 2024 11:27:55 AM

Oracle 23ai is the next long-term release that you need to upgrade to after Oracle 19c, and it is crammed with new features that you should start learning about now. As a developer, there are many interesting new features to explore.

It’s mid-2024, we’ve been awaiting Oracle Database 23c for many months where there have been releases piecemeal, mostly some cloud offerings plus the 23c Free (try to say “Twenty-three See Free” quickly 3 times 😉), but never the “full monty” general availability.

Now it’s renamed to 23ai (making it easier to pronounce 23ai Free) and more and more offerings have become available, and (hopefully) soon also GA on-premises. But you might say “Meh, in my daily life I don’t need to worry about 23ai – when I get the on-premises version I’ll have to wait for some patchsets before we’ll upgrade anyway.” It’s understandable, but you should start now to learn about 23ai.

Why now?

My Oracle Support document 742060.1 (as of the time of writing this) shows how 23ai is the next long-term release that you need to upgrade to after 19c:

You have less than two years of support left for 19c (unless you want to pay for an extension), and 23ai is just so crammed with new features that sorry, you’re not going to learn all you need if you start three months before the deadline. Just check out the New Features guide – a 12-chapter (!) manual. >

If that’s a bit daunting, at least look at the Feature Highlights here. >

It’s not too soon to start playing around – when the deadline gets closer, you’ll be happy that you’re not starting from scratch.

Also keep in mind that 23ai actually has reached version 23.6 – there were 23.1, 23.2, and 23.3 versions of 23c plus 23.4 and 23.5 versions of 23ai before – so the old saw about having to wait a couple releases for bugfixes is not 100% valid here, at least not for most of what impacts your daily life in my opinion.

What’s interesting for me?

Well, personally as a developer I find lots of interesting new stuff to look at.

Artificial intelligence

Given the new name, of course that’s one of the main features to try and fiddle with. Both the new VECTOR datatype and vector search that can be used for AI inside the database, but also the Select AI feature in Autonomous Database that enables you to query without knowing SQL, for example writing something like this:

SELECT AI WHAT CUSTOMER IS THE LARGEST BY SALES;

And it’ll automatically be transformed and executed as this SQL:

SELECT C.CUST_ID, C.CUST_FIRST_NAME, C.CUST_LAST_NAME, SUM(S.AMOUNT_SOLD) AS TOTAL_SALES
FROM SH.CUSTOMERS C
JOIN SH.SALES S ON C.CUST_ID = S.CUST_ID
GROUP BY C.CUST_ID, C.CUST_FIRST_NAME, C.CUST_LAST_NAME
ORDER BY TOTAL_SALES DESC
FETCH FIRST 1 ROW ONLY;

(Example from Brendan Tierney’s blog series on Select AI. > )

JSON Relational Duality

At first glance this might seem like we’ve seen before with XMLType and Object views, where we put a view on top of relational tables, enabling us to query them as XML or OO. But the revolution in JSON Relational Duality is that it works both ways! The view defines how the JSON is created from the relational tables in the same way, but without anything as troublesome as INSTEAD OF triggers, we can also insert/update/delete JSON via the view and it will be the underlying tables that are actually manipulated.

This enables development of both SQL, PL/SQL (and maybe APEX) on the relational data, and at the same time publish these as JSON REST endpoints, enabling document-oriented NoSQL development on the same data! No replication involved at all.

What’s more – if you already have a JSON document-oriented app, there’s a JSON-To-Duality migrator > to look at the JSON and create the needed relational tables and JSON Relational Duality Views to let you work both relationally and document-oriented.

A lot more...

There’s property graph support inside the database, enabling me to query graphs in my SELECT statements with SQL/PGQ and join them to my relational tables and whatever other data formats SQL can read these days.

There are Data Use Case Domains, data type and SQL enhancements, JavaScript stored procedures, SQL Firewall, and so on and so on and so on...

I’m so glad to be a SQL developer these days with all the new goodies in 23ai 😊

Where do I start?

I already linked to the New Features guide, but you can also get a nice overview here. >

Then get yourself one or more of the free options to play with 23ai:

There’s no excuse for not playing with 23ai – there’s plenty of free ways to do it.

When you get to the point where you want to use it, not just play with it, it’s currently in the cloud in Base DB, ExaDB-D, and ExaDB-C@C, plus on-premises on engineered systems Exadata and ODA.

Don’t dawdle – go for it! 😊