After returning from a lovely, relaxing weekend in the Black Forest, I found a few Oracle ACE Program swag waiting for me at a DHL collection point. Thank you so much, @oracleace.bsky.social!
Philipp Salvisberg
@salvis.com
Focused on database-centric development. Chat is open. https://www.salvis.com/blog/about
Remember SQLcl’s SCRIPT command? Why did it disappear from modern environments, and how can we bring it back? Both in standalone SQLcl and in the SQLcl embedded in SQL Developer for VS Code? www.salvis.com/blog/2026/07...
The Return of SQLcl’s SCRIPT Command
Introduction The script command was introduced with SQLcl 4.2. It is based on JSR 223, the Java Scripting API, and makes it possible to run JavaScript from SQLcl. This adds client-side control flow, f...
salvis.com
You can use assertions in Oracle AI Database to enforce temporal data integrity @salvis.com shows how to use these to: Prohibit overlapping periods Define temporal foreign keys => the parent row must be valid while the child is valid
Using SQL Assertions to Enforce Temporal Data Integrity - Philipp Salvisberg's Blog
Learn how SQL assertions enforce temporal integrity in Oracle AI Database by preventing overlaps and detecting gaps in temporal relationships.
buff.ly
Undocumented SYS_CONTEXT parameters: t.ly/822eR
Undocumented SYS_CONTEXT Parameters
Undocumented SYS_CONTEXT Parameters
t.ly
Coding agents write a lot of PL/SQL, but is it good PL/SQL? I wrote up how I hand #dbLinter 's CLI to Claude Code and make a clean lint report part of "done". Stay in control in the age of AI-generated code. 👇 #orclAPEX hartenfeller.dev/blog/dblinte...
Letting Coding Agents Lint Their Own PL/SQL with dbLinter
Coding agents write plenty of PL/SQL, but they need a feedback loop to write it well. Here's how to hand dbLinter to Coding Agents and teach it to check its own work.
hartenfeller.dev
Oracle provides an APEXlang compiler, but not a public parser for building custom tooling. Grisselbav’s APEXlang Parser fills that gap. In this blog post, I show how it enables static code analysis by detecting a security vulnerability in an Oracle APEX app. www.salvis.com/blog/2026/06...
Detecting Security Vulnerabilities With the APEXlang Parser
Introduction A parser for the APEXlang grammar enables the development of tools beyond the scope of the APEXlang compiler included in SQLcl, SQL Developer for VS Code, and ORDS. These tools can perfor...
salvis.com
Making progress with APEXlang support. The ANTLR4-based grammar can now parse the dbLinter APEX app without errors. Next step: more tests and integration into dbLinter’s language server.
Can syntax diagrams be generated from the APEXlang EBNF grammar? Yes! This post shows the conversion to W3C EBNF, the tooling used, and the resulting railroad diagrams. www.salvis.com/blog/2026/06...
Syntax Diagrams for APEXlang
Introduction The APEXlang API Reference documentation went live a few days ago. You can also download the APEXlang EBNF grammar. In this post, Kris Rice explains the value of having an EBNF. Since the...
salvis.com
Last part of my blog series about Implementing Multi-Temporality with Data Vault danischnider.wordpress.com/2026/05/16/i...
Implementing Multi-Temporality with Data Vault (Part 3)
In the last part of this blog series, we will look at how to load Slowly Changing Dimension (type SCD1 and SCD2) from the Current Views we created in our multi-temporal Data Vault schema.
danischnider.wordpress.com
New PWOW webinar on Unit Testing & code REUSE is coming! To celebrate, we have a special treat: an exclusive interview with Jacek Gębal, the driving force behind modern utPLSQL (originally founded by Steven Feuerstein). Trade "hope-it-works" for automation! 👇 how2ora-en.blogspot.com/2026/05/who-...
Who Shook Up the World of PL/SQL Testing? A Conversation with Jacek Gębal
A new PWOW webinar is approaching, focusing on a topic often—unfairly—neglected: Unit Testing . 🧪 The key to success isn't just wri...
how2ora-en.blogspot.com
A marvellous LinkedIn post (no really) from a colleague of mine on one of the promises of AI. Those of you who know my sense of humour, or have ever engaged with the old Oak Table folks, will probably appreciate it. www.linkedin.com/pulse/2-mill...
linkedin.com
The new features guide for Oracle AI Database 23.26.2 is out: docs.oracle.com/en/database/... One interesting addition is the join_to_one clause, which uses integrity constraints to simplify joins.
When integrating systems, we often talk about anti-corruption layers in application code. But what about the database layer? medium.com/@jasminfluri... @oracleace.bsky.social
What is an Anti-Corruption Layer in the Database and When Do You Need It?
Without an Anti-Corruption-Layer (ACL), direct database table access leads to tight coupling, increased risk of breakage on schema changes…
medium.com
💯 percent truth! You >must< learn #SQL
There seems to be a school of thought in the tech community that a robust knowledge SQL is now optional. My thoughts are that the exact opposite is true: Learning SQL is more important than ever. connor-mcdonald.com/2026/04/22/s...
Growing void between enterprise and frontier AI puts open weights models in the spotlight www.theregister.com/2026/04/12/a... I keep saying this...
The AI divide putting open weights models in spotlight
FEATURE: Most customers don't need the biggest baddest models, just ones that work, are cheap, and won't pirate their proprietary data
theregister.com
youtube.com/watch?v=mD1g... My favorites: #10 and #1. But all are spot on.
10 Relational Database Mistakes, Ranked
YouTube video by Decomplexify
youtube.com
Loops in hierarchical data are a pain Easy to add Hard to prevent @salvis.com shows Oracle AI Database 23.26.1 gives a simple solution Create an assertion limiting the maximum depth to N Do this by joining the hierarchy N+1 times in the assertion
Enforcing Acyclic Hierarchies With SQL Assertions - Philipp Salvisberg's Blog
Explore SQL Assertions in Oracle AI Database and learn how to enforce hierarchy integrity by detecting cycles with declarative constraints.
buff.ly
New blog post on how to use the color mix function to create new colors that are derived from the Universal Theme colors. #orclAPEX hartenfeller.dev/blog/apex-mi...
Mixing APEX Universal Theme Colors with the mix-color function
Lighten or darken APEX Universal Theme colors with the mix-color function to create custom colors for your APEX applications.
hartenfeller.dev
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...
blogs.oracle.com
Your Java CLI runs locally. But can someone install it with one command? Here’s how to ship it properly: Maven → Fat JAR → JReleaser → GitHub Release → JBang install End-to-end tutorial: buff.ly/TaWDWkK #Java #DevTools #OpenSource #CLI
Reasons why SELECT * is bad for SQL performance: An old blog (with Oracle-specific examples) with a whole range of reasons why. It's not only about network traffic and SQL plan execution, but client side processing and memory usage as well. tanelpoder.com/posts/reason...
Started almost 10 minutes late due to projector issues. They were solved for the next session. Luckily most participants had their laptops ready so I could share my screen via an adhoc Teams conference. Was fun.
@salvis.com talking about JSON duality views at #SOUG day in Bern #oracle #besharing
Great to see Mister #Oracle 26ai Autoupgrade @dohdatabase.com at the @soug.ch Swiss Oracle Group Meeting in #Switzerland #Bern // @salvis.com - it‘s all about community! @oracleace.bsky.social
How do you enforce temporal data integrity? With SQL Assertions in Oracle AI Database, we can now implement constraints such as: ✅ Non-overlapping validity periods ✅ Temporal referential integrity Here's a practical example using an extended DEPT-EMP model. www.salvis.com/blog/2026/03...
Using SQL Assertions to Enforce Temporal Data Integrity
Introduction More than twelve years ago, I described the multi-temporal features of Oracle Database in this blog post. In the conclusion, I wrote that I missed a temporal DML API, temporal integrity c...
salvis.com
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
Assertions for data integrity on a less-than-ideal data model
25-30 years ago I worked a lot with the Danish developed ERP system called Concorde XAL. It ran on top of a database (choice of several, mos...
kibeha.dk
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...
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...
Enforcing Acyclic Hierarchies With SQL Assertions
Introduction Referential integrity constraints have been available since version 7 of the Oracle Database. While these constraints ensure that referenced rows exist, they cannot express more complex i...
salvis.com
SQL-Assertions... I could not resist experimenting. simpleoracledba.blogspot.com/2026/02/draf...
Assertions used in arc-relationship
TL;DR: A simple use-case for SQL-Assertions: Adding a data-related constraint to an arc-relation. Demo using the Emp-Dept schema. Summary u...
simpleoracledba.blogspot.com
The recording for this session is now avaiable www.youtube.com/watch?v=ulLy...
What will fourth normal form fix in your database?
YouTube video by Oracle Developers
youtube.com
In Feb's Ask TOM Live we're looking at fourth normal form: "A table is in 4NF if and only if, for every one of its non-trivial multivalued dependencies X ↠ Y, X is a superkey" To help you understand this, would you prefer A description of these technical terms? Something more informal?