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...
View Article3 Reasons why It’s Okay to Stick with SQL
The past decade has been an extremely exciting one in all matters related to data. We have had: An ever increasing amount of data produced by social media (once called “Web 2.0”) An ever increasing...
View ArticleA Curious Incidence of a jOOQ API Design Flaw
jOOQ is an internal domain-specific language (DSL), modelling the SQL language (external DSL) in Java (the host language). The main mechanism of the jOOQ API is described in this popular article: The...
View ArticlejOOQ vs. Hibernate: When to Choose Which
Hibernate has become a de-facto standard in the Java ecosystem, and after the fact, also an actual JavaEE standard implementation if standards matter to you, and if you put the JCP on the same level...
View ArticleImpress Your Coworkers by Using SQL UNPIVOT!
I’ve recently encountered a very interesting question on Stack Overflow by an unnamed user. The question was about generating a table of the following form in Oracle, using a table valued function:...
View ArticlejOOQ Tuesdays: Glenn Paulley Gives Insight into SQL’s History
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....
View ArticleSQL JOIN or EXISTS? Chances Are, You’re Doing it Wrong
I’ve noticed this very consistently with a lot of customers, and also with participants of our Data Geekery SQL Workshop (which I highly recommend to everyone, if you excuse the advertising): A lot of...
View Article10 Easy Steps to a Complete Understanding of SQL
Too many programmers think SQL is a bit of a beast. It is one of the few declarative languages out there, and as such, behaves in an entirely different way from imperative, object-oriented, or even...
View ArticleTime for some Funky SQL: Prefix Sum Calculation
This Stack Overflow question has yet again nerd-sniped me [finding the] maximum element in the array that would result from performing all M operations Here’s the question by John that was looking for...
View ArticlejOOQ vs. Slick – Pros and Cons of Each Approach
Every framework introduces a new compromise. A compromise that is introduced because the framework makes some assumptions about how you’d like to interact with your software infrastructure. An example...
View ArticleHow to Extract a Date Part in SQL
The Modern SQL Twitter account (by Markus Winand) published a hint about how to extract a date part in SQL: The right way to get a part of a date/time is: EXTRACT(YEAR FROM CURRENT_DATE) = 2015...
View ArticleHow to use SQL PIVOT to Compare Two Tables in Your Database
This can happen ever so easily. You adapt a table by adding a new column: ALTER TABLE payments ADD code NUMBER(3); You go on, implementing your business logic – absolutely no problem. But then, later...
View ArticlejOOQ – Ein alternativer Weg mit Java und SQL zu arbeiten
We’ve published an article in the German magazine www.java-aktuell.de, which is published by the iJUG e.V.. You can read and download the article free of charge from our blog! In Java gibt es kein...
View ArticleIntegrating jOOQ with Grails Featuring the UWS-jOOQ Plugin
Introduction Grails is a web framework aimed to boost development productivity. One of the main features is domain centric database schema generation. Applications built with Grails are able to update...
View Article3 Reasons why It’s Okay to Stick with SQL
The past decade has been an extremely exciting one in all matters related to data. We have had: An ever increasing amount of data produced by social media (once called “Web 2.0”) An ever increasing...
View ArticlejOOQ vs. Hibernate: When to Choose Which
Hibernate has become a de-facto standard in the Java ecosystem, and after the fact, also an actual JavaEE standard implementation if standards matter to you, and if you put the JCP on the same level...
View ArticleDon’t be Fooled by Generics and Backwards-Compatibility. Use Generic Generic...
I’ve recently had a very interesting discussion with Sebastian Gruber from Ergon, a very early jOOQ customer, whom we’re in close touch with. Talking to Sebastian has lead our engineering team to the...
View ArticleHow to Avoid the Dreaded Dead Lock when Pessimistic Locking – And some...
Sometimes you simply cannot avoid it: Pessimistic locking via SQL. In fact, it’s an awesome tool when you want to synchronise several applications on a shared, global lock. Some may think this is...
View ArticleHow to FlatMap a JDBC ResultSet with Java 8?
You’re not into the functional mood yet? Then the title might not resonate with you – but the article will! Trust me. Essentially, we want this: +------+------+------+ | col1 | col2 | col3 |...
View ArticleIt’s the Little Things: The PL/SQL NULL Statement, and why Every Language...
Syntax is one of those topics. One of those emotional topics that lead to very very very important discussions. I personally like PL/SQL. It is extremely verbose, and precise. It forces you to adhere...
View Article