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

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