📚 New Reading List is out!
This week we got lots and lots of #Oracle #AI #Database 26ai posts and new compute shapes on #OCI
📖 Happy reading!
Posts by Chris Saxon
How does DATEDIFF work? Examples showing when DATEDIFF counts a time boundary crossed for DAY, WEEK, and YEAR
Oracle AI Database 23.26.1 added the DATEDIFF function
DATEDIFF ( <unit>, <start date>, <end date> )
Despite the name this is not computing elapsed time
It counts the time boundaries crossed
Read my latest post for full details blogs.oracle.com/sql/how-to-f...
Get Nth rows – third lowest paid person plus all ties Example SQL query using QUALIFY to do this
Get the Nth row in Oracle #SQL with
OFFSET n-1 FETCH NEXT ROW
To include ties, use
N plus all ties: NTH_VALUE ( ..., n ) OVER ( ORDER BY ... ) = n
N distinct value: DENSE_RANK () OVER ( ORDER BY ... ) = n
QUALIFY in 23.26.0 simplifies the last two; details at blogs.oracle.com/sql/how-to-g...
Congrats to the March Weekly DB Dev Gym winners
1 James Su
2 JeroenR
3 mentzel.iudith
And the winners for Q1:
1 James Su
2 mentzel.iudith
3 Stelios Vlasopoulos
Well done to all who took part
Think you know Oracle #SQL better?
Play at devgym.oracle.com/pls/apex/f?p...
Congratulations Tim!
Thanks for all the work you do to create Oracle content
📚 New Reading List is out!
This week we got:
🤖 🎉 A lot of great announcements in and around the #AI space
😎 🛠️ some #SQL fun with #JSON and more, and
🎪 behind-the-scenes GPU training and cloud network performance
📖 Happy reading!
Assertion execution model Identify if the DML could violate the assertion Track changed rows Run a guard query to see if DML could violate the assertion Run the validation query
Assertion execution model flow diagram
Assertions
Identify DML that could violate it
Track rows changed by the DML
Run a guard query to see if validation is necessary
Run a validation query if needed
Using assertions to enforce business rules increases your transaction throughput 30% compared to triggers
@toonkoppelaars.bsky.social comparing the impact of using assertions to triggers for data validation in Oracle AI Database
Spoiler alert:
Assertions can increase transaction throughput 30%
If it doesn’t, you should investigate
#apexworld2026
Real productivity = less code
Generative AI helps you write more code faster
But real productivity comes from writing less code
Marc Sewtz showing us how you do this with #orclapex by declaring your intent
#apexworld2026
Congrats to the winners of the #OracleACE assertions bounty!
1st Enforcing Acyclic Hierarchies With Assertions @salvis.com
2nd Temporal Assertions @anthony-harper.bsky.social
3rd Assertions for data integrity on a less-than-ideal data model @kibeha.dk
Details at blogs.oracle.com/sql/assertio...
📚 New Reading List is out!
⁉️ Assertions, 🎛️ GPU clusters, 🤖 skills and 📈 financial results are part of this week's reading list.
📖 Happy reading!
We're working on them - if there's any you think could be clearer please let me and Toon know.
We're aware of ORA-08697 when you use JOIN syntax
Assertions for data integrity on a less-than-ideal data model.
www.kibeha.dk/2026/03/asse...
Or "How I could have used assertions 25 years ago when I worked with Concorde XAL"...
#OrclDB #SQL #Assertions #OracleACE
Combining all into one should still be efficient; I'd have to check the details though.
Specific errors is a plus.
Filter in the ALL query, then check exists the one corresponding table in SATISFY
Could you create a separate assertion for each table?
the join columns must be non-null - either via a constraint or where clause
So like a conditional foreign key?
This should be possible with assertions, though it depends on the details
What couldn't?
SQL statement: select use_cases from assertions where creator = 'Oracle ACE' order by real_world_applicability + complexity + novelty desc fetch first 3 rows only
We're still looking for interesting assertions use cases
Just over two weeks left for #OracleACE to get your entries in
Bounty closes 15th March
For full details read blogs.oracle.com/sql/assertio...
I saw, thanks! You're welcome to submit as many as you want :)
SQuizL for 27 Feb 2026. Guess the SQL statement in the top left which ends "pokemon_trainers" using the clues provided below.
Stretch your #SQL skills with #SQuizL
A free guess the SQL statement quiz
Every day there's a new Oracle SQL statement to solve in six tries or less
Pick from the fragments below to complete the statement on the top left
Can you get it in one?
buff.ly/hpGFuBa
SQL statement: select use_cases from assertions where creator = 'Oracle ACE' order by real_world_applicability + complexity + novelty desc fetch first 3 rows only
We're still looking for interesting assertions use cases
Just over two weeks left for #OracleACE to get your entries in
Bounty closes 15th March
For full details read blogs.oracle.com/sql/assertio...
Brand new to Oracle AI Database? Start Here
Many Oracle guides are written for DBAs or long-time developers, and as a newcomer it feels like you’re expected to already know the jargon. I started in the same place, learning the as I went, and I’m still learning each day. If you're considering using…
Aggregation Filters in Oracle AI Database 26ai
oracle-base.com/articles/26/...
Hierarchies should be trees and not loops.
Learn how SQL Assertions in Oracle AI Database 23.26.1 can help prevent cycles in hierarchical data.
www.salvis.com/blog/2026/02...
📚 New Reading List is out!
This week, we got a lot of great ⭕ #Oracle AI #Database and 🤖 #AI content!
📖 Happy reading!
The recording for this session is now avaiable
www.youtube.com/watch?v=ulLy...
Example SQL statement in 23.26.1 with the FILTER clause for aggregates select sum ( salary ) filter ( where job_id = 'IT_PROG' ) total_programmer_salaries, avg ( salary ) filter ( where job_id like '%CLERK' ) mean_clerk_salaries from employees;
You can conditionally filter aggregates in Oracle AI Database 23.26.1 with
fn ( col ) FILTER ( WHERE ... )
In earlier releases use
fn ( CASE WHEN ... THEN col END )
Both these filter the rows as part of the aggregration
Read more in my latest post blogs.oracle.com/sql/conditio...