Powered by
WordPress
  • Avoiding precision loss with MLE/JavaScript in Oracle AI Database 26ai

    Oracle AI Database 26ai introduced Multilingual Engine (MLE), allowing you to run JavaScript inside the database. This feature bumps the number of languages available to write server-side code to 3: PL/SQL, Java, and now JavaScript. JavaScript is a modern language with many interesting features and data types, but there are things worth knowing. Number arithmetic…

  • Using the operating system’s certificate store in Oracle Database 19c

    I previously wrote about Using the Operating System’s certificate store instead of an Oracle wallet in Oracle AI Database 26ai. This is a great productivity boost, and it all comes down to this: if the operating system trusts a HTTPS certificate, so does the database. Before jumping into the examples, it’s worth highlighting an important aspect:…

  • Adding self-signed certificates to a wallet became a one-liner in SQLcl 26.1

    Before Oracle AI Database 26ai, anyone wanting to make a REST call from the database to an external service needed the external service’s certificate chain to be present in a wallet. The same applied to any other network call. This situation has greatly improved: Oracle Database releases 19c and 26ai trust the operating system’s certificate…

  • How to Use the GitHub MCP Server with Codex

    GitHub’s MCP Server is a great tool for interacting with GitHub using natural language. It’s fun to use, it can boost your productivity, and it is particularly useful when your agent needs to work with a remote repository. This article walks through how to use GitHub’s MCP Server with Codex, based on personal experience. Create a…

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

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