This page contains all of my posts belonging to the Linux category in chronological order.
Life hack: causing utPLSQL to raise an error in case of failed tests
The wonderful Symposium 42 community is always a source of inspiration, kindness and willingness to help. Many thanks to everyone for lending me an ear while ranting about utPLSQL (tongue in cheek of course). This post is for you. Unit Testing and PL/SQL utPLSQL is the most prominent unit test framework for PL/SQL as far…
Real productivity gains with AI: coding unit tests for your ORDS endpoints
Ever since I first heard about them, I have become a great fan of unit tests, Test-Driven-Development, and CI/CD in general. Whenever I can, I incorporate these into my demos. I wrote a fair bit about these topics in Implementing DevOps Principles with Oracle Database, if you’re curious to learn more, head over to the…
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 arrives as JSON since JSON is the data exchange format du jour. Every developer on the planet knows that you shouldn’t blindly accept…
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’t use a 1:1 mapping in your Duality View for any reason, it is possible to augment the Duality View with generated fields. Let’s…
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 (Application Programming Interface). Instead of accessing the database directly via a driver SDK, you use HTTP calls instead. There is of course a lot more to…
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…
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…
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…
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…
Something went wrong. Please refresh the page and/or try again.