2022-01-14

Finding Wrong Hints

Introduction I have used the Oracle Database for many years. And I use hints. For experiments, but also in production code. There are cases when you know more than the Oracle Database. For example about the cardinality of a data source or the number of result rows to process or the number […]
2020-06-21

Names Matter

This is one of my favourite quotes: There are only two hard things in Computer Science: cache invalidation and naming things.— Phil Karlton IT is my daily life. And this quote is so true. Lately, I’ve been thinking much more than usual about naming, and that names really matter. This led to […]
2019-12-22

Moving to GitHub

Over the years, my blog has become one big mess. It was no longer a blog. It contained product pages, change logs, software downloads, FAQs and even a forum. That was a nice experiment. But now it’s time to move everything that doesn’t belong in my personal blog to another place. A […]
2018-03-11

PL/SQL Cop for SonarQube 7.0

For the last two months, my Trivadis colleague Daniel Schutzbach and I have been working on the PL/SQL Cop plugin for SonarQube. The goal was to support the most recent SonarQube versions 5.6 LTS, 6.7 LTS and 7.0. Dani was doing the heavy lifting and my job was testing and minor bug […]
2017-09-24

Continuous Code Quality for PL/SQL with Docker

In this blog post, I show step-by-step how to set up a continuous code quality inspection environment for a PL/SQL project hosted on GitHub. I’m going to use a Docker container for SonarQube and another container for Jenkins. Here is the table of contents of the major steps. In the summary of […]
2017-05-14

Get Ready for Oracle 12.2

The Oracle Database 12.2 grammar is now supported in the most current versions of PL/SQL Cop, PL/SQL Cop for SQL Developer, PL/SQL Cop for SonarQube and PL/SQL Analyzer. The following screenshot shows a query based on analytic views. Have a look at the full example on Oracle Live SQL, if you are interested in analytic views. […]
2017-02-06

PL/SQL Cop for Trivadis Coding Guidelines Version 3.2

The PL/SQL Cop tool suite supports the new Trivadis PL/SQL & SQL Coding Guidelines 3.2. Download the new versions from the Download section. So, what’s new? Numbering and Categorisation Scheme The guidelines have been renumbered, extended, categorised by severity (blocker, critical, major, minor and info) and assigned to one or more SQALE characteristics (changeability, […]
2016-06-28

Trivadis PL/SQL & SQL Coding Guidelines Version 3.1

The latest version 3.1 of the Trivadis PL/SQL & SQL Coding Guidelines has 150 pages. More than 90 additional pages compared to version 2.0. Roger Troller did a tremendous job in updating and extending an already comprehensive document while making it simpler to read and easier to understand. In this post, I will […]
2016-04-26

PL/SQL Cop Meets oddgen

Until August 2015 it never occurred to me that one could use non-PL/SQL code within conditional compilation blocks. Back then we discussed various template engine options as the foundation for oddgen – the Oracle community’s dictionary-driven code generator. oddgen supports nowadays the in-database template engines FTLDB and tePLSQL. Both tools may access templates stored in PL/SQL packages using a […]
2016-04-23

Monitoring PL/SQL Code Evolution

Last week I presented the PL/SQL Cop tool suite to a customer in Germany. While preparing the demo I had taken my first deeper look at the PL/SQL Cop SonarQube plugin, written by Peter Rohner, a fellow Trivadian. I was impressed by how well the additional PL/SQL Cop metrics integrate into SonarQube and how easy […]