Chris Saxon's Avatar

Chris Saxon

@chrisrsaxon.bsky.social

Oracle Developer Advocate for SQL. Lover of quizzes and games of all kinds. Any views expressed belong to me. chrissaxon.co.uk

677 Followers  |  34 Following  |  208 Posts  |  Joined: 01.09.2023  |  1.9569

Latest posts by chrisrsaxon.bsky.social on Bluesky

Using the SQL analysis report to find queries in the cursor cache which can’t use indexes

Using the SQL analysis report to find queries in the cursor cache which can’t use indexes

The #SQL analysis report in Oracle AI Database 26ai shows potential problems in a query

Cartesian products
UNION
Non sargable filters (can’t use indexes)

You can use this to find queries in the cursor cache which you may be able to improve

16.10.2025 17:30 β€” πŸ‘ 9    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
Select AI example use cases

Select AI example use cases

Example using select AI to find the top 10 streamed movies after 2010

Example using select AI to find the top 10 streamed movies after 2010

Run natural language queries against Oracle AI Database with

SELECT AI <your query>

e.g.

SELECT AI what are the top 10 movies

Michelle Malcher demos and gives example use cases for it #AIWorld

16.10.2025 16:21 β€” πŸ‘ 4    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Preview
Oracle AI Database 26ai replaces Oracle Database 23ai Larry Ellison announced Oracle AI Database 26ai Β today in his keynote at Oracle AI World conference in Las Vegas. And I am pretty certain you may want some clarification on what this means exactly.…

Oracle AI Database 26ai replaces Oracle Database 23ai

Read more here:
mikedietrichde.com/2025/10/14/o...

15.10.2025 13:24 β€” πŸ‘ 12    πŸ” 7    πŸ’¬ 1    πŸ“Œ 0
Preview
QUALIFY clause (window functions) QUALIFY: filter rows based on window functions

Oracle 26aiΒΉ was released yesterday.

From the SQL standpoint it's worth mentioning that is has got the QUALIFY clause:

I bet this starts an avalanche (there are already PostgreSQL patches).

modern-sql.com/caniuse/qual...

ΒΉ 26ai is the marketing version, 23.26.0 is the technical version.

15.10.2025 15:36 β€” πŸ‘ 9    πŸ” 6    πŸ’¬ 2    πŸ“Œ 0
Deck of SQL tips cards

Deck of SQL tips cards

Deck of SQL tips cards

Deck of SQL tips cards

Get your desks of #SQL tips at #AIWorld from the swag-as-a-service or Oracle AI Database booths

14.10.2025 16:50 β€” πŸ‘ 5    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0

speed sql - I love it!
Speed SQL results for quiz on 07-OCT-2025
Attempt #1: 10 correct in 43 seconds
βœ” βœ” βœ” βœ” βœ” βœ” βœ” βœ” βœ” βœ”
#SpeedSQL devgym.oracle.com/pls/apex/f?p...

07.10.2025 06:28 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

That's FAST!

Great work :)

10.10.2025 12:49 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
SQuizL (aka SQL Wordle) for 8th Oct 2025. Complete the SQL statement from the clue provided (hospital_id) using the fragments below

SQuizL (aka SQL Wordle) for 8th Oct 2025. Complete the SQL statement from the clue provided (hospital_id) using the fragments below

Lots struggled with yesterday's #SQuizL!

Recognizing the first transaction on the Helsinki stock exchange, the solution was

SET TRANSACTION READ WRITE NAME q'[Helsinki Stock Exchange]'

This names the db transaction

Can you guess today's statement from the clue?

devgym.oracle.com/pls/apex/f?p...

08.10.2025 09:34 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Getting WITH it
Using CTEs for better performance (Short Course)
October 2025

Getting WITH it Using CTEs for better performance (Short Course) October 2025

In this month's SQL Ask TOM Live session, Ric Van Dyke is joining me to discuss how to

Use the WITH clause
Optimize #SQL queries using WITH

Join us at Tues 21ct Oct, 2pm UK time asktom.oracle.com/ords/r/tech/...

07.10.2025 14:29 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Congrats to the Oracle Dev Gym Weekly DB winners for Sept 2025:

1st Stelios Vlasopoulos
2nd Andrey Zaytsev
3rd mentzel.iudith

πŸΎπŸ†πŸ‘

This dedicated trio are also the top-3 ranked players for Q3 2025

See the full rankings at devgym.oracle.com/pls/apex/f?p...

06.10.2025 15:33 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Preview
Reading List – October 2025Β #1 πŸ“° rowlen surprise - Jonathan Lewis explains the avg_row_len and num_rows columns in user_tables πŸ“° Oracle DB 23ai supports external Apache Iceberg tables - Bryan Grenn shows how you can query Apache Iceberg files with Oracle Database 23ai πŸ†Β Governor Hochul Announces $218 Million Investment to Improve Patient Care - The NY State Office of Mental Health awards Oracle Health the funding to create a comprehensive statewide electronic health record system&hellip;

πŸ“š New Reading List is out!

πŸ€“ This week, we got a lot of geeky blog posts to read through!

Happy reading!

06.10.2025 13:01 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
IEEE top programming languages for jobs in 2025
The top three are
Python
SQL
Java

IEEE top programming languages for jobs in 2025 The top three are Python SQL Java

#SQL is second in the IEEE Top Programming Languages for jobs in 2025

Good going for a language that's over 50 years old!

spectrum.ieee.org/top-programm...

24.09.2025 14:42 β€” πŸ‘ 7    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

Join the Oracle Dev Gym (FREE!) and build your Oracle technology muscles by taking workouts, quizzes, and even entire classes on SQL, PL/SQL, database design, logic and more. πŸ’ͺ social.ora.cl/6019AE8VJ

18.09.2025 20:05 β€” πŸ‘ 3    πŸ” 1    πŸ’¬ 0    πŸ“Œ 1

This also covers various issues you may hit

ORA-30926 => updating the same row twice
ORA-38104 => updating join columns in merge
ORA-01779 => changing non-key preserved tables in 19c and earlier
ORA-00934 => using aggregate functions

16.09.2025 10:03 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Summary of syntax for the ways to update one table from another in Oracle Database
Direct joins (23ai)
Update-only merge
Updating a subquery
Correlated subquery update

Summary of syntax for the ways to update one table from another in Oracle Database Direct joins (23ai) Update-only merge Updating a subquery Correlated subquery update

Oracle Database 23ai added direct join syntax for updates

UPDATE t1
SET t1.col = t2.col
FROM t2
WHERE <join>

My latest post looks at this and other methods for updating one table from another

Update only merge
Updating a query
Correlated subquery update

blogs.oracle.com/sql/post/how...

16.09.2025 10:03 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Why not? WITHIN GROUP has also been used for PERCENT_CONT/DISC for ages

11.09.2025 14:50 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
SQuizL for 11 Sept 2025. Can you guess the SQL statement using the clues provided?

SQuizL for 11 Sept 2025. Can you guess the SQL statement using the clues provided?

Happy Birthday #SQuizL!

The daily Wordle-style guess the SQL statement quiz turns 2 today

We hope it makes for a fun way to learn Oracle #SQL syntax

Big thanks to Eli Feuerstein for building it

Play today at devgym.oracle.com/pls/apex/f?p...

11.09.2025 12:26 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Why?

11.09.2025 12:18 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Reading List – September 2025Β #1 πŸ“° Oracle Master Encryption Key Management: Wallets, OKV, and HSM Explained - Bryan Grenn shows practical examples of Oracle Database Master Encryption Keys πŸŽ‰ Oracle Data Masking and Subsetting expands to discover 150+ new sensitive data types - Oracle adds 150+ new sensitive data types to its Data Masking and Subsetting product πŸ“° The Magical NVL Function - WiΔ™cej PostΓ³w demonstrates enhancements for optional SQL query parameters&hellip;

πŸ“š New reading list is out!

πŸ” #security, 🩹 #patching, πŸŽ›οΈ #internals, πŸ† #customerwins and more are part of it.

Check it out! πŸ‘‡

08.09.2025 13:01 β€” πŸ‘ 3    πŸ” 3    πŸ’¬ 0    πŸ“Œ 0

Congrats to the top 3 players for August in the Weekly DB tournament on Oracle Dev Gym

1 Stelios Vlasopoulos
2 Karel_Prech
3 Andrey Zaytsev

πŸΎπŸ‘πŸ†

Join them and practice your #SQL skills at devgym.oracle.com/pls/apex/f?p...

08.09.2025 14:48 β€” πŸ‘ 6    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
A summary of key SQLcl project commands

A summary of key SQLcl project commands

A summary of the key commands for SQLcl project #poug2025

06.09.2025 07:42 β€” πŸ‘ 8    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0
The dev test prod setup for the demo

The dev test prod setup for the demo

Database changes made in dev

Database changes made in dev

Exporting the database changes using SQLcl project

Exporting the database changes using SQLcl project

Deploying the changes to test

Deploying the changes to test

Oracle SQLcl project is a tool for managing deployments of database objects and APEX apps

Rafal Grzegorczyk showing us how to use it to move changes from dev->test->prod

#poug2025

06.09.2025 07:37 β€” πŸ‘ 13    πŸ” 2    πŸ’¬ 1    πŸ“Œ 0
SQuizL quiz. Complete the SQL statement on the top left using the fragments provided below in six tries or less. A new statement is published every day

SQuizL quiz. Complete the SQL statement on the top left using the fragments provided below in six tries or less. A new statement is published every day

Speed SQL - guess the missing keyword (????) in
???? locations SET location_name = 'Carolina' WHERE meta_location = 'Mind'
From the four options:
UNION, UPDATE, MATERIALIZED, COMMENT
You have 60 seconds to guess 10 statements. A new batch is issued daily

Speed SQL - guess the missing keyword (????) in ???? locations SET location_name = 'Carolina' WHERE meta_location = 'Mind' From the four options: UNION, UPDATE, MATERIALIZED, COMMENT You have 60 seconds to guess 10 statements. A new batch is issued daily

Example multiple-choice question on Oracle Dev Gym. A new question is published every week in the Weekly DB tournament. See how your knowledge stacks up in the leaderboards or play past quizzes at your leisure in the library.

Example multiple-choice question on Oracle Dev Gym. A new question is published every week in the Weekly DB tournament. See how your knowledge stacks up in the leaderboards or play past quizzes at your leisure in the library.

Practice your Oracle #SQL skills with free quizzes on Oracle Dev Gym

SQuizL - complete the statement using the clues provided

Speed SQL - race against the clock to guess the missing keywords

Weekly DB - a new multiple-choice question every week

buff.ly/05p9QME

29.08.2025 11:01 β€” πŸ‘ 2    πŸ” 2    πŸ’¬ 0    πŸ“Œ 1

Get faster PL/SQL in #SQL with

alter session set sql_transpiler = on

=> database will convert eligible functions to SQL

Read my latest post for details on

What can be transpiled
Transpiler vs scalar macros
Functional differences
Impact of function-based indexes

blogs.oracle.com/sql/post/fas...

27.08.2025 14:31 β€” πŸ‘ 12    πŸ” 6    πŸ’¬ 0    πŸ“Œ 1
Preview
Non-Positional INSERT statement – the insiderΒ story Oracle Database 23.9 implements the non-positional INSERT statement. In my social media posts, I called out that Oracle Database is the first and only database to support this functionality, and by that, I mean not only the SET clause but the entirety of that feature set. There is a lot that can be done now, and this blog post provides the backstory of how this feature came about, what it does, and when you should use it.

🌟 The non-positional INSERT #SQL statement will hopefully change the way how we write INSERT statements forever. I'm proud that I was directly involved in this effort.

🧠 This blog post is a "brain dump" recounting that journey.

26.08.2025 13:00 β€” πŸ‘ 22    πŸ” 4    πŸ’¬ 4    πŸ“Œ 2

πŸš€ Question to the Tech Community πŸ’»

Are you integrating AI-powered tools into your DevOps CI/CD pipeline?

πŸ€– Do you believe they truly belong in the pipeline, or are they better suited for development and local testing only?

I’d love to hear your thoughts! πŸ’¬

19.08.2025 13:54 β€” πŸ‘ 0    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

Yes, the blank values are NULL

So in LEFT OUTER JOIN, the values on the right next to ( circle, 1 ) on the first line are NULL

19.08.2025 13:19 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

The fallacy of not gathering stats to keep execution plans from changing came up again, so I blogged about it blogs.oracle.com/optimizer/po...

13.08.2025 12:48 β€” πŸ‘ 3    πŸ” 3    πŸ’¬ 1    πŸ“Œ 0

Just noticed that IF [NOT] EXISTS made it into 19.28 too

HT @ilmarkerm.eu

01.08.2025 10:20 β€” πŸ‘ 8    πŸ” 3    πŸ’¬ 2    πŸ“Œ 0

Indeed

01.08.2025 10:15 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

@chrisrsaxon is following 20 prominent accounts