IslandSQL Episode 3: Lock Table
Introduction In the last episode we extended the IslandSQL grammar to cover all DML statements as single lexer token. Now it’s time to handle the complete grammar for one DML statement. The simplest...
View ArticleIslandSQL Episode 4: Expressions
Introduction In the last episode, we extended the IslandSQL grammar covering the complete lock table statement. However, the support for expressions was very limited. It was not possible to use a date...
View ArticleOracle Database 23c on a Mac with an M-Series Chip
Starting Position I got my MacBook Pro 16″ with an Apple M1 Max chip with 10 cores, 64 GB RAM and 4 TB disk in November 2021. At that time, the M1 chip had already been on the market for a year and I...
View ArticleSharing SQL Developer Connections #JoelKallmanDay
1. The Problem I created a Docker image and a container for the Oracle Database 19c (19.19) for Linux ARM. The container contains ORDS, APEX and various sample schemas. Finally, an Oracle database that...
View ArticleMLE TypeScript & JavaScript Modules
Introduction The Oracle Database 23c supports MLE JavaScript modules. MLE modules are standard ECMAScript 2022 modules. The easiest way to develop such modules is outside the database. This allows us...
View ArticleInstalling MLE Modules in the Oracle Database
Introduction In my previous blog post, I’ve shown how you can deploy an npm module from a URL and a custom ESM module from a local file into a remote Oracle Database 23c using JavaScript and SQLcl....
View ArticleAutonomous Transactions
Introduction Autonomous transactions became available in the Oracle Database 8i Release 1 (8.1.5). 25 years ago. Before then the feature was used only internally, for example, when requesting a new...
View ArticleIslandSQL Episode 5: Select in Oracle Database 23c
Introduction In the last episode, we extended the expressions in the IslandSQL grammar to complete the lock table statement. The grammar now fully covers expressions, conditions and the select...
View ArticleIslandSQL Episode 6: DML Statements in Oracle Database 23c
Introduction The IslandSQL grammar now covers all DML statements. This means call, delete, explain plan, insert, lock table, merge, select and update. In this episode, we will focus on new features in...
View ArticleIslandSQL Episode 7: DML Statements in PostgreSQL 16 and What I Miss in...
Introduction In the last episode, we covered DML statements in SQL*Plus/SQLcl scripts for the Oracle Database 23c. The IslandSQL grammar can now also handle PostgreSQL 16 DML statements in psql...
View ArticleIslandSQL Episode 8: What’s New in Oracle Database 23.4?
Introduction In the last episode, we looked at some features in PostgreSQL which I miss in the Oracle Database. The IslandSQL grammar now covers PL/SQL and the related DDL statements. The...
View ArticleIslandSQL Episode 9: GraphQL, JSON and Flexible Schemas With Duality Views
Introduction In the last episode, we looked at some new features in Oracle Database 23.4. The IslandSQL grammar now covers all statements that can contain static DML statements and code in PL/SQL and...
View ArticleIslandSQL Final Episode 10: Parsing PL/pgSQL
Introduction IslandSQL is a parser for SQL files targeting OracleDB or PostgreSQL. The parser is available on Maven Central and can process SQL*Plus, SQLcl or psql statements besides SQL statements....
View ArticleHow 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...
View ArticlePL/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...
View ArticleEvolution of a SQL Domain for Semantic Versioning
1. Introduction In my current project, I use an SQL domain to implement the formatting and precedence rules for Semantic Versioning. I started with a simple implementation covering only the most basic...
View ArticleAvoid 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....
View ArticleWrapping 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...
View Article