Philipp Salvisberg reposted
I've started a blog series on assertion locking. blogs.oracle.com/sql/assertio... blogs.oracle.com/sql/assertio... blogs.oracle.com/sql/assertio...
Philipp Salvisberg
@salvis.com
Focused on database-centric development. Chat is open. https://www.salvis.com/blog/about
526 followers157 following198 posts
Philipp Salvisberg reposted
I've started a blog series on assertion locking. blogs.oracle.com/sql/assertio... blogs.oracle.com/sql/assertio... blogs.oracle.com/sql/assertio...
Philipp Salvisberg reposted
You can't pass parameters to views But with macros in Oracle AI Database you can create view-like objects that do have parameters These received a big upgrade in 23.26.4 with macro objects: CREATE MACRO ... IS SELECT ... @chrisrsaxon.bsky.social shows how buff.ly/9U00Fuy
The docs for RU 23.26.4 of the Oracle AI Database is now available: docs.oracle.com/en/database/... Again tons of changes, including some small neat features such as (ASCII) bar_chart:
Joel Kallman's talk at APEX World 2019 stayed with me. For #JoelKallmanDay, I reflect on that memory, AI and what makes our work our own. www.salvis.com/blog/2026/10...
Philipp Salvisberg reposted
Philipp Salvisberg reposted
I tested three models across 69 user turns in an APEX AI Agent. My latest post compares cost, correctness, and tool use; and explains why growing context matters when estimating agent costs. #orclAPEX #AIAgents blog.cloudnueva.com/apex-ai-agen...
Oracle AI Database makes outer joins the default in Join-to-One because inner joins may filter rows unintentionally. Here is why I think the join type should be explicit. www.salvis.com/blog/2026/08...
The new #dbLinter "Allow Insecure TLS" setting helps when corporate TLS inspection is difficult to bypass. But what are the risks? A mitmproxy experiment shows what the proxy can and cannot see. www.salvis.com/blog/2026/08...
Philipp Salvisberg reposted
It's finally here! The folks at Redgate Simple Talk have published Part 1 of my article series on how to implement Oracle 26ai Deep Data Security (DeepSec for short). Have a look at this intriguing new feature set. More to come soon! www.red-gate.com/simple-talk/...
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!
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...
Philipp Salvisberg reposted
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
Philipp Salvisberg reposted
Undocumented SYS_CONTEXT parameters: t.ly/822eR
Philipp Salvisberg reposted
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...
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...
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...
Philipp Salvisberg reposted
Last part of my blog series about Implementing Multi-Temporality with Data Vault danischnider.wordpress.com/2026/05/16/i...
Philipp Salvisberg reposted
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-...
Philipp Salvisberg reposted
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...
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.
Philipp Salvisberg reposted
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
Philipp Salvisberg reposted
Philipp Salvisberg reposted
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...
Philipp Salvisberg reposted
Philipp Salvisberg reposted
youtube.com/watch?v=mD1g... My favorites: #10 and #1. But all are spot on.
Philipp Salvisberg reposted
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
Philipp Salvisberg reposted
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...
Philipp Salvisberg reposted
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...
Philipp Salvisberg reposted
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
Philipp Salvisberg reposted
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...
Philipp Salvisberg reposted
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...
Philipp Salvisberg reposted
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
Philipp Salvisberg reposted
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...
Philipp Salvisberg reposted
SQL-Assertions... I could not resist experimenting. simpleoracledba.blogspot.com/2026/02/draf...
Philipp Salvisberg reposted
The recording for this session is now avaiable www.youtube.com/watch?v=ulLy...
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?
Philipp Salvisberg reposted
Java CLIs in 2026: - scaffold with PicoCLI picocli.info - style with Tamboui tamboui.dev - launch with JBang www.jbang.dev - release with JReleaser jreleaser.org
Philipp Salvisberg reposted
Philipp Salvisberg reposted
Finally! Very excited that GitHub is now letting us have controls over who can open PRs on repos. https://github.blog/chan...
Philipp Salvisberg reposted
I wrote part 2 about what I learned from eight months with Omarchy, especially after switching from macOS after 15 years. I documented which apps I use now on Linux compared to before. Maybe it helps someone here, too. www.ssp.sh/blog/linux-...
Philipp Salvisberg reposted
Philipp Salvisberg reposted
Preventing overlapping start-end dates in history tables is a common challenge Oracle AI Database gives you two ways to do this: Guarantee consecutive ranges with foreign keys Stop overlapping ranges with assertions Find out how in my latest post blogs.oracle.com/sql/how-to-s...
Playing with OracleDB assertions. Learning new error messages. ORA-08673: Equijoin "E"."DEPARTMENT_ID"="D"."DEPARTMENT_ID" found does not meet the criteria to do a FAST validation. Good explanation on docs.oracle.com/en/error-hel...
Philipp Salvisberg reposted