This page contains a list of all my posts dealing with the Oracle database in one way or another.
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 web application I used a shell to curl REST endpoints, while on the other hand simulate concurrency using SQLcl. This wasn’t particularly realistic, and…
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 simplifying the way developers work with data. Duality Views aren’t just read-only, you can perform changes (updates, inserts, deletes, …) with them, too. Optimistic locking is…
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 them, support for PL/SQL Records and Collections. This is a rather wide topic, which is why you find the article broken into a small…
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. It allows me to figure out if the code is running as part of an APEX application, or elsewhere. This neat code snippet…
Quick tip concerning dbms_cloud’s create_credential() call
DBMS_CLOUD is one of the crucial packages in Oracle AI Autonomous Database (ADB from now on). It allows you to perform many operations, including the creation of credentials. These are almost universally required for developers and admins alike. DBMS_CLOUD.CREATE_CREDENTIAL is an overloaded procedure, its documentation can be found here. I recently experimented with Select AI,…
JavaScript showcase: a fun playground environment for MLE/JavaScript in Oracle AI Database 26ai
I’m a huge fan of Oracle’s SQL Developer Extension for VSCode. I use it on a daily basis, and it has been invaluable to me. I particularly like the great integration into Git, and it’s built on top of a solid foundation that is Visual Studio Code. Recently I found out about GitHub CodeSpaces. After…
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 write user-defined functions and procedures in JavaScript in addition to PL/SQL and Java. But you may ask yourself: how do I get started? There’s an…
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 myself. Tell me what happened already! Using Oracle SQL Developer Extension for Visual Studio Code, connecting to an Autonomous Database-Serverless, a query…
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 them, support for PL/SQL Records and Collections. This is a rather wide topic, which is why you find the article broken into a small…
Troubleshooting missing privileges in dbms_xplan.display_cursor
This is a quick note-to-self to make sure a database account has all the necessary privileges to execute dbms_xplan.display_cursor. These are documented in the PL/SQL Packages and Types reference, summarised here for your convenience. Well, mine, actually 😀 WARNING: before you start granting the following privileges, make sure you have a change request recorded, and…
Something went wrong. Please refresh the page and/or try again.