Martin Bach
banner
martindba.bsky.social
Martin Bach
@martindba.bsky.social
Product Manager @ Oracle. Ex @Enkitec. Technology enthusiast. Author, blogger, speaking at user groups. Former Ace Director, OCM. I work for Oracle but do not speak for them
Wait, what? In 2023 I bought 64GB DDR5-5600 for 210€.

Today, if I wanted to get 64GB DRAM (identical spec) I have to part with 879€ 🤯

<insert your favourite combination of swear words here>
February 8, 2026 at 7:37 AM
Looking at my posting insights in Wordpress and I thought ... wouldn't it be fun to post "Tetris" style? Nearly did that in January 🤣
February 5, 2026 at 8:05 AM
Optimistic locking with React, ETags, @OracleREST endpoints, and JSON Relational Duality Views in Oracle AI Database — but shown in a UI that people actually want to use.

I recorded a short demo video to prove it.

Blog post & video here:
martincarstenbach.com/2026/02/05/o...
Optimistic Locking Made Easy: JSON Relational Duality Views & ETags in React
In my previous post I demonstrated how ETags can help your web application implement concurrent data access and optimistic locking. Except I didn’t use a web application … Rather than a…
martincarstenbach.com
February 5, 2026 at 7:59 AM
Just finished recording a short video where I’m showing a lot more realistic scenario involving a react web app to modify the Duality View. Definitely more pleasing to the eye than raw JSON in the console 📽️
February 4, 2026 at 3:29 PM
A little chuffed about the fact that I finished a small React app today to interact with a JSON Relational Duality view via REST. Oracle ORDS kindly provided the endpoint for me. Thanks to react-bootstrap it does look half-decent, too
Minions GIF
ALT: Minions GIF
media.tenor.com
February 4, 2026 at 11:33 AM
🚨 New blog post!

I just migrated a PL/SQL app to JavaScript (yes—still inside the database 😎).
As part of the experiment I put JSON Relational Duality Views + ETags to the test for optimistic locking.

Spoiler: it works beautifully.

Dive in 👇
martincarstenbach.com/2026/02/03/o...
Optimistic Locking Made Easy: The Power of ETags in Action
JSON Relational Duality Views are one of the most remarkable features introduced with Oracle AI Database 26ai. They effortlessly blend the best of both worlds: relational and document, greatly simp…
martincarstenbach.com
February 4, 2026 at 6:41 AM
Yep, saw that, too.
January 29, 2026 at 5:23 AM
Not entirely convinced of zone 2 training. It sure is fun and leisurely but I almost feel as if it made me slower. What’s your experience? This is about running but it might as well apply to cycling 🚴 🏃 #running #endurance #cycling
January 28, 2026 at 9:01 PM
So far I only used the syntax highlighter block in Wordpress. I was today <n> years old when I noticed that the code block has syntax highlighting for many more languages than syntax highlighter . Plus it can do line numbers, display the language and add a copy button ☺️
January 27, 2026 at 10:10 AM
Did you know you can write User Defined Functions in TypeScript for Oracle AI Database 26ai?

I’ve just updated my article showing how to transpile TypeScript, apply Biome for linting, all with CI in mind — just like you would for any modern app:

👉 martincarstenbach.com/2023/07/04/l...
January 26, 2026 at 9:10 PM
3-day blogging streak! 🚀
New post in my MLE/JavaScript series covering collections and record support: using nested tables to pass arguments to apex_lang.get_message 🧩📚
More on varrays & associative arrays coming soon 👀✨

👉 martincarstenbach.com/2026/01/22/w...
What’s new with MLE 23.26.0 – support for PL/SQL Collections and Records Pt 3
Oracle AI Database has been released! It ships with a whole raft of cool new features, including some the Multilingual Engine (MLE) team integrated for JavaScript. This article discusses one of the…
martincarstenbach.com
January 22, 2026 at 7:01 PM
The best way to get ideas for blog posts is to actively work with technology 💻. I love experimenting 🧪👨‍💻
Recently I translated a PL/SQL code unit to MLE/JavaScript. If you ever need to perform a PL/SQL calculation in JavaScript⚙️, here’s how to do it 👇

martincarstenbach.com/2026/01/21/r...
Retrieving the result of a PL/SQL computation in MLE/JavaScript
Recently, while working on a joint project with the APEX team, the need arose to rewrite a piece of PL/SQL code in MLE/JavaScript. The PL/SQL code in question roughly looks like this. declare l_res…
martincarstenbach.com
January 21, 2026 at 1:54 PM
Quick question for the community: do you use shared server connections with your Oracle database? (docs.oracle.com/en/database/...). Regardless of the release…I am genuinely curious 🧐
Database Net Services Administrator's Guide
docs.oracle.com
January 19, 2026 at 8:48 AM
🚀 Small update to my blog

I updated my page template to finally display tags 🎉

Tags were already assigned for each article, but now they’re visible and clickable. For example, all my JavaScript posts are now accessible in one place:

👉 martincarstenbach.com/tag/JavaScri...
JavaScript – Martins Blog
Posts about JavaScript written by Martin Bach
martincarstenbach.com
January 15, 2026 at 8:09 AM
Reposted by Martin Bach
The method_opt parameter of dbms_stats controls histogram generation

@martindba.bsky.social shows how to use it to

Delete all histograms except for 1
Create this histogram using the AUTO clause

With

for all columns size 1, for columns data_skew size AUTO
Multiple “for” clauses in dbms_stats’s method_opt
Recently, I encountered some frustration in recalling the correct syntax for the method_opt parameter in DBMS_STATS. This clause is primarily used when creating or deleting histograms. A histogram …
buff.ly
January 8, 2026 at 12:02 PM
🚀 I’m excited to share that the all-new JavaScript LiveLab for Oracle AI Database 26ai is live!

If you’re curious about writing JavaScript on the server the updated LiveLab makes getting hands-on much easier

No setup required, just a browser; feedback welcome:
martincarstenbach.com/2026/01/06/s...
Say hello to the all new server-side JavaScript LiveLab
In-Database JavaScript, powered by Multilingual Engine (MLE) debuted as a major feature in Oracle AI Database 26ai. Starting with the Developer Preview (Release 23.2) a few years ago, you could wri…
martincarstenbach.com
January 6, 2026 at 3:00 PM
Reflecting on my blogging journey in 2025 📊✍️

Summary: I managed to blog a fair bit this year☺️and it was fun!

Looking forward to more writing, more learning, and sharing practical insights. Thanks to everyone who’s taken the time to read my stuff

🔗 martincarstenbach.com
December 29, 2025 at 7:56 AM
🚀 New blog post is out 🖥️

Will this one be the final one for this year 🤔 ?

I investigated an unexpected parallel query execution in Autonomous Database. Turns out to be a mistake on my part, so I wrote this in case you hit this, too: martincarstenbach.com/2025/12/29/w...
Why does my query run in parallel on Autonomous Database-Serverless even though I do everything to prevent it from doing so?
While preparing for another blog post I desperately wanted to write I noticed something unexpected. The problem turned out to be between keyboard and chair, but I don’t want to get ahead of m…
martincarstenbach.com
December 29, 2025 at 7:32 AM
🚀 New blog post is out 🖥️

I started a mini-series about Oracle's server-side JavaScript implementation, and its support for PL/SQL records and collections. Part II, out now, shows you how to return records from JavaScript to PL/SQL.

Details here: martincarstenbach.com/2025/12/19/w...
What’s new with MLE 23.26.0 – support for PL/SQL Collections and Records Pt 2
Oracle AI Database has been released! It ships with a whole raft of cool new features, including some the Multilingual Engine (MLE) team integrated for JavaScript. This article discusses one of the…
martincarstenbach.com
December 19, 2025 at 2:03 PM
Reposted by Martin Bach
🎡 #apexconn26 | 18.–20. Mai | Heide Park Soltau

#LowCode, #orclapex & #PLSQL in einer Location, die genauso dynamisch ist wie die Technologie selbst.

🎤 Keynote von @cczarski.bsky.social: "Low-Code mit APEX 2026 – Der Stand der Dinge" – mit APEXlang, KI, neuen Features u.v.a.m. 😃

apex.doag.org
December 18, 2025 at 10:15 AM
Reposted by Martin Bach
Schema annotations in Oracle AI Database enable you to add key-value metadata on

Tables
Views
Indexes
Domains

These help document your objects

@martindba.bsky.social shows how to add them to view columns with

ALTER VIEW ... MODIFY ( ANNOTATIONS ( ... ) )
Creating column-level annotations on views
While updating my slides covering “what’s new in Oracle AI Database 26ai” I noticed that examples how to annotate views are currently absent from the SQL Language Reference. While…
buff.ly
December 11, 2025 at 12:01 PM
🚀 New blog post is out 🖥️

I was recently asked if the JavaScript SQL driver used in Oracle AI Database respects Virtual Private Database (VPD) policies.

I was pretty sure it did, a quick test removed all uncertainty.

Spoiler: it does. Care for the details?

🔗 martincarstenbach.com/2025/12/12/d...
Does the MLE SQL Driver respect Virtual Private Database policies?
An interesting question came in today and it’s a great opportunity to elaborate a little on the nature of the Oracle JavaScript SQL Driver. As you may have heard, Oracle AI Database 26ai intr…
martincarstenbach.com
December 12, 2025 at 1:23 PM
Ready for my first of two talks during #ittage25: today I’m going to introduce Java developers to database tuning. Actually any developer. And it’s a pretty light into 🙃Hope to see you at 14:00!
December 10, 2025 at 10:09 AM
🚀 Quick Oracle tip: use multiple FOR clauses in METHOD_OPT to keep stats lean while building a histogram only where it matters.

Small tweak, big control. 😉 And I can never remember the correct syntax, so I wrote it down

More: martincarstenbach.com/2025/12/09/m...
Multiple “for” clauses in dbms_stats’s method_opt
Recently, I encountered some frustration in recalling the correct syntax for the method_opt parameter in DBMS_STATS. This clause is primarily used when creating or deleting histograms. A histogram …
martincarstenbach.com
December 9, 2025 at 3:08 PM
Bind variables boost Oracle performance, cut hard parses, and reduce SQL injection risk.

Many of you know this, but this time I did the maths showing the overhead of not sharing cursors.

You can find the details here: martincarstenbach.com/2025/12/02/m...
More good reasons to use bind variables in cursors in Oracle
Bind variables are a best practice in Oracle database development. They offer significant benefits in performance, security, and maintainability. One of the main reasons to use bind variables is pr…
martincarstenbach.com
December 3, 2025 at 9:00 AM