This page contains a list of all my posts dealing with the Oracle database in one way or another.
Updated setup-oracle-sqlcl Action and why it matters for SQLcl projects
This is a short post announcing a small but important change in the way you install SQLcl in GitHub Actions. The latest release allows you to install a specific SQLcl release in addition to the latest one. The most straightforward approach to using SQLcl in GitHub Actions is via Gerald Venzl’s setup-oracle-sql GitHub Action. Since…
Real productivity gains with AI: coding unit tests for your ORDS endpoints. A walthrough
After the completion of my little experiment writing unit tests with the help of AI I was so excited I spontaneously recorded a short video, too. In this video I’m walking you throw my code environment, the application, unit tests, and the GitHub Actions workflow. I’m posting it here as an addendum to the previous…
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…
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…
Something went wrong. Please refresh the page and/or try again.