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

  • Backing up your connections in SQLDeveloper Extension for VSCode

    This is a very quick note concerning database connections in SQLDeveloper Extension for VSCode on MacOS. All your connection details are stored in $HOME/.dbtools. That includes both the folder structure as well as the connections themselves. Which connections I hear you ask? The ones in the top-left corner of the screen, as you can see…

  • 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…

  • 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,…