Philipp Salvisberg’s Blog

Database-centric development


Deleting Rows With Merge

The merge statement allows you to insert, update and delete rows in the target table in one go. This is great. However, the delete part does not work as expected. Is it a bug? No, it works exactly as documented. Nonetheless, I was not aware of this for years. Let’s take a […]

Testing With utPLSQL – Made Easy With SQL Developer

Nowadays, everything is about automation. Software testing is no exception. After an introduction, we will create and run utPLSQL tests with Oracle SQL Developer for a fictitious user story. Our tests will cover a PL/SQL package, a virtual column, two database triggers and a view. The full code samples can be found […]

plscope-utils for SQL Developer 1.0 – What’s New?

Introduction PL/Scope is an SDK for source code analysis. It is available since Oracle Database 11g Release 1 and has been significantly improved in 12c Release 2. plscope-utils for SQL Developer is a SQL Developer extension that simplifies the compilation with PL/Scope, visualizes PL/Scope information under a PL/Scope node in the Connections […]

Finding Wrong Hints

Introduction I use the Oracle Database since 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 of […]

GraalVM Native Image – First Impressions

Introduction A native image is an operating system specific executable file. You can build such an image for basically every application running on a Java virtual machine. This approach promises faster start-up times and lower resource consumptions. This makes it appealing for serverless computing, auto-scaling platforms and command line tools. I gained […]

Do Not Format Invalid Code in SQL Developer

Introduction What happens when you call the formatter in SQL Developer for invalid code? Until recently SQL Developer tried to format it anyway. This produced strange results in some cases. Starting with SQL Developer version 21.2.0 there is a hidden option to suppress formatting when the code is invalid. What Is Valid […]

Lightweight Formatter for PL/SQL & SQL

TL;DR Bye bye heavyweight formatter. Long live the lightweight formatter. Are you using Oracle’s SQL Developer or SQLcl? Then install these settings and press Ctrl-F7 to produce code that conforms to the Trivadis PL/SQL & SQL Coding Style. A compromise between conformity and individuality. Heavyweight Formatter A typical PL/SQL & SQL formatter […]

Work From Home – First Anniversary

The last time I was on-site at a customer was March 10, 2020. I usually spent about 20-40% of my time working from home. But working exclusively from home is something completely different. A new experience. After a year it’s time for a brief personal retrospection. The Good More at Home Pretty […]

Connecting via JDBC to the Oracle Cloud

You can connect to an Oracle Autonomous Database in different ways. This is well documented here. It’s a bit different from what we know from on-premises environments. In this blog post, I show the steps to connect to an Autonomous Database from a third-party IDE like DataGrip. From a JDBC perspective, this is […]

Accessing Snowflake from SQL Developer

My first day of work this year was a training day. As a participant in a “Snowflake Fundamentals” training course. I opted for the four-day, multi-week option so that I would have time to better absorb what I had just learned. Tomorrow is my third day and I plan to write more […]