Martin Bach's Avatar

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

630 Followers  |  268 Following  |  392 Posts  |  Joined: 18.08.2023
Posts Following

Posts by Martin Bach (@martindba.bsky.social)

Preview
Using JSON Schema to validate data submitted to the database via REST Calls The title’s a mouthful (sorry!), but here’s the core idea: your application exposes REST endpoints through Oracle REST Data Services (ORDS). When a client uses POST to insert new records, the input…

🚨New Blog post 🚨

Does your application receive JSON via REST calls? If so, how do you make you don't receive garbage data?

Using JSON Schema is a neat way to do that. Here's an example using ORDS and Oracle AI Database 26ai (incl. server-side JavaScript)πŸ‘‡

martincarstenbach.com/2026/03/01/u...

02.03.2026 08:30 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Augmenting JSON Relational Duality Views with generated data A recent forum post inspired this brief article on generating summary data in JSON Relational Duality Views. Typically you map a table’s columns to fields in the resulting JSON. If you can&#8…

πŸš€ New Blog Post 🚨

A recent forum question provided inspiration πŸ’‘

If you ever found yourself in the situation where you had to provide additional detail in a JSON Relational Duality View this post shows one way to do it

πŸ‘‰ martincarstenbach.com/2026/02/23/a...

23.02.2026 10:24 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Handling Query Parameters in JavaScript-based ORDS Endpoints Oracle REST Data Services (ORDS) allows you to REST-enable your Oracle Database. REST is short for Representational State Transfer, and REST calls are typically used as your database API (Applicati…

πŸš€ New post: Handling query parameters in JavaScript-based Oracle REST Data Services (ORDS) endpoints

Covers:
β€’ How ORDS exposes query parameters
β€’ Safe access & validation patterns
β€’ Pitfalls (implicit type conversion!)
β€’ Making endpoints more predictable

πŸ‘‰ martincarstenbach.com/2026/02/20/h...

20.02.2026 09:51 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
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…

With #JSON duality views in Oracle AI Database you can build a JSON interface over database tables

These come with lost-update detection via ETags

@martindba.bsky.social shows how this prevents conflicting writes for REST calls by using the if-match header

17.02.2026 12:02 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

Wow, I admire your dedication!

15.02.2026 06:46 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I found a GitHub issue where they said they enhanced microdnf but that’s further upstream than my current OL9 release. It’s big brother got the job done

13.02.2026 13:18 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

D’oh! Scratched my head for 10 minutes asking myself why microdnf doesn’t find the local rpm. Turns out microdnf as it ships in Oracle Linux 9 simply can’t install local RPMs. Switching to the not quite as slim image helped.

13.02.2026 13:01 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

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>

08.02.2026 07:37 β€” πŸ‘ 5    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
Post image

Looking at my posting insights in Wordpress and I thought ... wouldn't it be fun to post "Tetris" style? Nearly did that in January 🀣

05.02.2026 08:05 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
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…

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

05.02.2026 07:59 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

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 πŸ“½οΈ

04.02.2026 15:29 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Minions GIF ALT: Minions GIF

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

04.02.2026 11:33 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
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…

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

04.02.2026 07:33 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Yep, saw that, too.

29.01.2026 05:23 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

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

28.01.2026 21:01 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
screenshot showing some of the languages supported by wordpress's code block

screenshot showing some of the languages supported by wordpress's code block

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 ☺️

27.01.2026 10:10 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

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

26.01.2026 21:10 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
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…

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

22.01.2026 19:01 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
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…

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

21.01.2026 13:54 β€” πŸ‘ 3    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Database Net Services Administrator's Guide

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 🧐

19.01.2026 08:48 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 5    πŸ“Œ 0
Preview
JavaScript – Martins Blog Posts about JavaScript written by Martin Bach

πŸš€ 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...

15.01.2026 08:09 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
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 …

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

08.01.2026 12:02 β€” πŸ‘ 3    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Preview
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…

πŸš€ 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...

06.01.2026 15:00 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
A screenshot showing my year in blogging, listing blog posts per month and the most popular blog post this year

A screenshot showing my year in blogging, listing blog posts per month and the most popular blog post this year

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

29.12.2025 07:56 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
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…

πŸš€ 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...

29.12.2025 07:32 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
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…

πŸš€ 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...

19.12.2025 14:03 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

🎑 #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

18.12.2025 10:15 β€” πŸ‘ 4    πŸ” 4    πŸ’¬ 0    πŸ“Œ 0
Preview
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…

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 ( <col> ANNOTATIONS ( ... ) )

11.12.2025 12:01 β€” πŸ‘ 0    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Preview
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…

πŸš€ 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...

12.12.2025 13:23 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Flags are flying in the wind in front of the venue indicating IT Tage 25 are in full swing

Flags are flying in the wind in front of the venue indicating IT Tage 25 are in full swing

A foto of the IT Tage booth

A foto of the IT Tage booth

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!

10.12.2025 10:09 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0