Powered by
WordPress
  • 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…

  • What’s new with MLE 23.26.0 – support for PL/SQL Collections and Records Pt 1

    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…

  • Using Oracle Database Free in your devcontainer and GitHub Codespaces

    Dev containers are pretty nifty when it comes to keeping your development environment isolated from the rest of your system. Quoting from the documentation: Development containers, or dev containers, are Docker containers that are specifically configured to provide a fully featured development environment. Whenever you work in a codespace, you are using a dev container…

  • Java devs, please instrument your code 🥺

    While preparing a talk for Java developers I revisited the topic of code instrumentation. Within the database, for example when writing PL/SQL or MLE/JavaScript code, you would use DBMS_APPLICATION_INFO to set module and action plus any other details you care about. This allows your friendly database admin or tuning expert to understand your application better.…

  • ORA-942 in MLE/JavaScript, but the query runs fine in my IDE! What gives?

    This article is part of the upcoming Troubleshooting JavaScript chapter that should soon make it into the JavaScript Developer’s Guide. It covers a common problem developers face when writing database logic in Oracle, and it can be summed up as role grants often won’t suffice. TL;DR By default, named JavaScript blocks (and PL/SQL blocks) in…

  • Successfully Using SQLcl Projects If Your Production Branch Isn’t Called “main”

    This short note demonstrates that the the production branch name is configurable in SQLcl projects. If you haven’t come across SQLcl projects yet, it’s Oracle’s opinionated framework for creating database applications. It is targeted towards enterprise-level applications that require structured release processes, making them especially well-suited for database CI/CD (Continuous Integration/Continuous Delivery). Since you can’t…

  • Intro to Post-Execution Debugging in SQL Developer for VSCode

    Post-execution debugging has been an integral feature in Multilingual Engine/JavaScript from the very beginning. It allows you to record activity in the database and learn more about your application’s behaviour post execution. You can view the resulting data either on the command line as a JSON file, in Database Actions, or – most recently –…

  • Life hack: encode a URL in a QR code using APEX

    Someone in the community once said to me that APEX is awesome even if you’re not writing APEX apps in the database. It comes with so many useful featues – like the one you’re reading about. Along ORDS (Oracle REST Data Services) it’s one of the standard components in all my databases. Adding QR codes…

  • Using Ansible to resize the root LV on Oracle Linux 9 in OCI

    While preparing an upcoming talk at a community event I worked on some Terraform code I recycled. In a nutshell, I’m creating a virtual machine in Oracle Cloud Infrastructure using Oracle Linux 9. I’m fully intending to run Oracle Database 19.28.0 on that VM later. Rather than sticking with the default boot volume size I…