Philipp Salvisberg

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

If you use uc-local-apex-dev you need one command to get to #orclAPEX 26.2: local-26ai.sh upgrade-apex (takes a few mins but runs without you having to do anything). Run local-26ai.sh shrink-space to remove 26.1 after you validated everything works fine.

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...

blog.cloudnueva.comAPEX AI Agents: Comparing Cost, Quality, and ModelsResults from 69 Oracle APEX AI Agent turns comparing three models, token costs, tool use, and correctness, with practical design lessons.

TIL that the ChatGPT app on macOS has a pet. And it is activated by Ctrl-Space... 😱. If you still work with IDEs like I do, you might want to show the pet where it belongs.

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

buff.lyUsing SQL Assertions to Enforce Temporal Data Integrity - Philipp Salvisberg's BlogLearn how SQL assertions enforce temporal integrity in Oracle AI Database by preventing overlaps and detecting gaps in temporal relationships.

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...

hartenfeller.devLetting Coding Agents Lint Their Own PL/SQL with dbLinterCoding 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.

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...

salvis.comDetecting Security Vulnerabilities With the APEXlang ParserIntroduction 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...

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.

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-...

how2ora-en.blogspot.comWho Shook Up the World of PL/SQL Testing? A Conversation with Jacek GębalA new PWOW webinar is approaching, focusing on a topic often—unfairly—neglected: Unit Testing . 🧪 The key to success isn't just wri...

Philipp Salvisberg reposted

💯 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...

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

buff.lyEnforcing Acyclic Hierarchies With SQL Assertions - Philipp Salvisberg's BlogExplore SQL Assertions in Oracle AI Database and learn how to enforce hierarchy integrity by detecting cycles with declarative constraints.

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...

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.

alacourb.bsky.social@alacourb.bsky.social

@salvis.com talking about JSON duality views at #SOUG day in Bern #oracle #besharing

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...

salvis.comUsing SQL Assertions to Enforce Temporal Data IntegrityIntroduction 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...

Philipp Salvisberg reposted

Philipp Salvisberg reposted

The recording for this session is now avaiable www.youtube.com/watch?v=ulLy...

youtube.comWhat will fourth normal form fix in your database?YouTube video by Oracle Developers
Chris Saxon@chrisrsaxon.bsky.social

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

After a decade of planning, editing, delays due to my own busyness, further editing and waiting for 23c, the release of 26ai and my pre-retirement finally unblocked the situation. I have agreed with Apress to publish the third edition of Troubleshooting Oracle Performance in 2026. #TOP3

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-...

ssp.shArch Linux (Omarchy) — 8 Months Later: The Good, the Bad, and the FixableAfter 15 years on macOS, I switched to Arch Linux with Omarchy. 8 months in, here's what replaced my Apple apps, which hardware I chose, and what actually broke — and how I fixed it.