chrissaxon.co.uk
There’s new
ALL ( <query> )
SATIFY ( <query> )
To simplify this
There’s new
ALL ( <query> )
SATIFY ( <query> )
To simplify this
#SQL assertions
These enable you to create cross row, cross table constraints with SQL standard syntax
CREATE ASSERTION … CHECK (
[ NOT ] EXISTS (
)
@toonkoppelaars.bsky.social explains at #DOAG2025
#SQL assertions
These enable you to create cross row, cross table constraints with SQL standard syntax
CREATE ASSERTION … CHECK (
[ NOT ] EXISTS (
)
@toonkoppelaars.bsky.social explains at #DOAG2025
You can connect to it from VS Code or any other client with SQL*Net
#DOAG2025
You can connect to it from VS Code or any other client with SQL*Net
#DOAG2025
SELECT emperor FROM japan AS OF PERIOD FOR meiji_era DATE '1868-10-23'
This uses the temporal period meiji_era to find rows active on the date passed
Today's seems challenging too - can you guess it?
devgym.oracle.com/pls/apex/f?p...
SELECT emperor FROM japan AS OF PERIOD FOR meiji_era DATE '1868-10-23'
This uses the temporal period meiji_era to find rows active on the date passed
Today's seems challenging too - can you guess it?
devgym.oracle.com/pls/apex/f?p...
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
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
SELECT AI
e.g.
SELECT AI what are the top 10 movies
Michelle Malcher demos and gives example use cases for it #AIWorld
SELECT AI
e.g.
SELECT AI what are the top 10 movies
Michelle Malcher demos and gives example use cases for it #AIWorld
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...
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...
Use the WITH clause
Optimize #SQL queries using WITH
Join us at Tues 21ct Oct, 2pm UK time asktom.oracle.com/ords/r/tech/...
Use the WITH clause
Optimize #SQL queries using WITH
Join us at Tues 21ct Oct, 2pm UK time asktom.oracle.com/ords/r/tech/...
Good going for a language that's over 50 years old!
spectrum.ieee.org/top-programm...
Good going for a language that's over 50 years old!
spectrum.ieee.org/top-programm...
UPDATE t1
SET t1.col = t2.col
FROM t2
WHERE
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...
UPDATE t1
SET t1.col = t2.col
FROM t2
WHERE
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...
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...
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...
Rafal Grzegorczyk showing us how to use it to move changes from dev->test->prod
#poug2025
Rafal Grzegorczyk showing us how to use it to move changes from dev->test->prod
#poug2025
Schema annotations have been backported to 19.28
These enable you to add key-value metadata to describe tables, columns, and other database objects
Schema annotations have been backported to 19.28
These enable you to add key-value metadata to describe tables, columns, and other database objects
Disabling the transpiler reverts the behaviour from what I can see without changing the statement
Disabling the transpiler reverts the behaviour from what I can see without changing the statement
Generate version 4 UUIDs with the UUID function
Check whether a value is a valid UUID
SELECT UUID(), IS_UUID (...)
Generate version 4 UUIDs with the UUID function
Check whether a value is a valid UUID
SELECT UUID(), IS_UUID (...)
Automatically place any unaggregated columns in the select into the group by clause
SELECT col1, col2, ...
FROM ..
GROUP BY ALL -- generates col1, col2
Automatically place any unaggregated columns in the select into the group by clause
SELECT col1, col2, ...
FROM ..
GROUP BY ALL -- generates col1, col2
Assign column values in the SET clause for row-based inserts:
INSERT INTO … SET col1 = val1, col2 = val2, ...
Match columns from the source table to the target table in INSERT-SELECT by name rather than position with
INSERT INTO … BY NAME SELECT …
Assign column values in the SET clause for row-based inserts:
INSERT INTO … SET col1 = val1, col2 = val2, ...
Match columns from the source table to the target table in INSERT-SELECT by name rather than position with
INSERT INTO … BY NAME SELECT …
Can you find the #SQL statement hidden amongst all the spam?
devgym.oracle.com/pls/apex/f?p...
Can you find the #SQL statement hidden amongst all the spam?
devgym.oracle.com/pls/apex/f?p...