Oracle LONG and LONG RAW Causing “Stream has already been closed” Exception

Like many old databases, Oracle has legacy data types, which are rather nasty to work with in every day SQL. Usually, you don't run into wild encounters of LONG and LONG RAW data types anymore, but when you're working with an old database, or with the dictionary views, you might just have to deal with … Continue reading Oracle LONG and LONG RAW Causing “Stream has already been closed” Exception

Please, Java. Do Finally Support Multiline String Literals

I understand the idea of Java-the-language being rather hard to maintain in a backwards-compatible way. I understand the idea of JDK API, such as the collections, to be rather tough not to break. Yes. I don't understand why Java still doesn't have multiline string literals. How often do you write JDBC code (or whatever other … Continue reading Please, Java. Do Finally Support Multiline String Literals

How to Fill Sparse Data With the Previous Non-Empty Value in SQL

The following is a very common problem in all data related technologies and we're going to look into two very lean, SQL-based solutions for it: How do I fill the cells of a sparse data set with the "previous non-empty value"? The problem The problem is really simple and I'm reusing the example provided by … Continue reading How to Fill Sparse Data With the Previous Non-Empty Value in SQL

SQL GROUP BY and Functional Dependencies: A Very Useful Feature

Relational databases define the term "Functional Dependency" as such (from Wikipedia): In relational database theory, a functional dependency is a constraint between two sets of attributes in a relation from a database. In other words, functional dependency is a constraint that describes the relationship between attributes in a relation. In SQL, functional dependencies appear whenever … Continue reading SQL GROUP BY and Functional Dependencies: A Very Useful Feature

Reactive Database Access – Part 1 – Why “Async”

Notice that the examples in this article may be outdated, as Typesafe's Activator works differently now. The blog post will not be maintained to provide up-to-date Activator examples. We're very happy to announce a guest post series on the jOOQ blog by Manuel Bernhardt. In this blog series, Manuel will explain the motivation behind so-called … Continue reading Reactive Database Access – Part 1 – Why “Async”

How to Find the Longest Consecutive Series of Events in SQL

A very interesting problem that can be solved very easily with SQL is to find consecutive series of events in a time series. But what is a consecutive series of events in a time series? Take Stack Overflow, for example. Stack Overflow has a cool reputation system that uses badges to reward certain behaviour. As … Continue reading How to Find the Longest Consecutive Series of Events in SQL

How to Find the Closest Subset Sum with SQL

I've stumbled upon this very interesting question on Stack Overflow, recently. Its title is: [How to] compare a number with sum of subset of numbers In this article, we'll compare the user's imperative approach to the extremely elegant (Oracle) SQL approach. We'll be making use of any combination of these awesome SQL features: Window functions … Continue reading How to Find the Closest Subset Sum with SQL

jOOQ Tuesdays: Markus Winand is on a Modern SQL Mission

Welcome to the jOOQ Tuesdays series. In this series, we’ll publish an article on the third Tuesday every other month where we interview someone we find exciting in our industry from a jOOQ perspective. This includes people who work with SQL, Java, Open Source, and a variety of other related topics. We are excited to … Continue reading jOOQ Tuesdays: Markus Winand is on a Modern SQL Mission

The 10 Most Popular DB Engines (SQL and NoSQL) in 2015

About two years ago, we've published this post about the 10 most popular DB engines, where we analyzed the data published by Solid IT on their DB Ranking website. In the meantime, the Solid IT measurement system has found to be a credible source, such that the website has also been cited at Gartner, InfoWorld, … Continue reading The 10 Most Popular DB Engines (SQL and NoSQL) in 2015

Semi Join and Anti Join Should Have Their Own Syntax in SQL

Relational algebra nicely describes the various operations that we know in SQL as well from a more abstract, formal perspective. One of the most common relational JOIN operations is the "equi-join" or SQL INNER JOIN. The above example "equi-joins" the ACTOR, FILM_ACTOR, and FILM tables from the Sakila database, in order to produce a new … Continue reading Semi Join and Anti Join Should Have Their Own Syntax in SQL