2026-01-02

Fighting Bad PL/SQL & SQL with VS Code

The success of a project or product depends largely on the quality of the code. But how can I improve security, maintainability or performance? More importantly, how can I prevent code with quality defects from entering production? In addition to testing, code analysis plays a central role. These days, code can be […]
2025-10-15

Is SYSDATE Deterministic? #JoelKallmanDay

TL;DR No, SYSDATE is not deterministic. However, it behaves very similarly to a deterministic function within an Oracle Database SQL statement. Background On a customer site, we used faketime on the OS to change the date and time for testing purposes. As long as you only travel forward in time, the Oracle […]
2025-07-12

Outer Joining With ANSI SQL-89 and SQL-92

Introduction I recently implemented a quick fix for the rule G-3130 to transform queries to ANSI SQL-92 syntax. One of the challenges was to handle Oracle’s outer-join syntax (+). In ANSI SQL-89, join and filter criteria are part of the WHERE clause. It’s not easy to distinguish them. In this blog post, […]
2025-07-05

Installing SQL Developer in IDEs Implementing the VS Code Extension API

Introduction The Oracle SQL Developer team is working on bringing the essential functionality built over the last 20 years in the classic SQL Developer IDE—a JDeveloper extension running as a standalone application—to the modern VS Code IDE. The integration with the VS Code ecosystem greatly enhances the developer experience. Is it time […]
2025-03-18

dbLinter Rules Repository

Introduction Today I proudly announce that the Joint Venture between United Codes and Grisselbav released the initial version of the dbLinter Rules Repository website. This is the first publicly available component of the dbLinter tool suite. What is dbLinter? dbLinter is a suite for checking and improving the quality of database applications. […]
2025-03-08

Wrapping and Unwrapping PL/SQL

Introduction Today I released a PL/SQL Unwrapper for VS Code. You can find it in the VS Code Marketplace, along with instructions on how to use it. It’s super easy and works the same way as the extension I wrote 10 years ago for SQL Developer in Java. If you’re curious about […]
2025-01-28

Avoid Implicit Type Conversion in JSON Access

Introduction Before comparing two values, the Oracle Database automatically ensures that both values have the same data type. It converts one of the values to match the data type of the other value. The SQL Language Reference manual describes when and how implicit data conversions happen. However, Oracle recommends that you convert […]
2024-12-24

Evolution of a SQL Domain for Semantic Versioning

1. Introduction In my current project, I use a SQL domain to implement the formatting and precedence rules for Semantic Versioning. I started with a simple implementation covering only the most basic rules. Getting the sorting right is key in my project. It allows me to identify the latest compatible version of […]
2024-10-16

PL/SQL vs. JavaScript in the Oracle Database 23ai #JoelKallmanDay

JavaScript is the first language supported by the Multilingual Engine (MLE) in Oracle Database 23ai. Having additional languages in the Oracle Database allows us to use existing libraries within the database. Also, it makes it easier for those without PL/SQL skills to get started with database development. Wasn’t that also the argument […]
2024-09-30

How Many Bytes Are in an Emoji?

What Is a Byte? A byte is made up of 8 bits. And in the old days, it represented a character. If you use a single-byte character set such as WE8MSWIN1252, WE8ISO8859P15 or similar, it still is. What Is a Character? We can find definitions for example on Wikipedia and in the […]