This page contains a list of all my posts dealing with the Oracle database in one way or another.
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…
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 introduced JavaScript as a first class citizen right next to PL/SQL and Java. Now you’ve got another language to write database lambdas…
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 is a special type of column statistic that provides more detailed information about the data distribution in a table column. A histogram sorts values into “buckets,” as…
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 protection against SQL injection, but performance plays an equally important role. This post is concerned with the latter. What are bind variables? As a database developer…
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 this is getting fixed, here’s a short post how to use annotations with Oracle views. Schema Annotations Schema Annotations are a pretty nice feature, especially in…
Using the MLE PL/SQL Foreign Function Interface in APEX
While preparing a talk for the upcoming annual German Oracle User Group conference, DOAG 2025, I noticed I haven’t yet written anything about the using the MLE PL/SQL Foreign Function Interface (or FFI for short) in APEX. The PL/SQL FFI was introduced in Oracle 23.7 to simplify the way developers (you!) work with PL/SQL. Rather…
Passing JSON PL/SQL types to MLE JavaScript
Recently the MLE team was asked if it was possible to pass JSON PL/SQL types to MLE/JavaScript.Remember that you have multiple options to work with JSON in Oracle Database 26ai: SQL (using the JSON data type), PL/SQL (using the PL/SQL API), JavaScript (did you know that the J in JSON stands for JavaScript?), etc. Shout…
Something went wrong. Please refresh the page and/or try again.