Modern Oracle Database Programming

It has been almost a year (March 21st 2022) since Alex asked me if I knew someone who could be his co-author for a new book he was asked to write. Before I really knew what I was getting myself into I said yes, I know someone. I’ll do it.
And thus began a period of brainstorming, juggling with ideas, discarding subjects, researching and of course writing.
The first period was taking it easy. But then we signed the contract to write the book and things got serious. Now we had to deal with deadlines. The first couple of chapters had to be completed right around the time we were both visiting Dallas for KScope22. That meant we had given ourselves even tighter deadlines.
Besides writing a book we also had to do our day jobs, enjoy a holiday with the family and of course visit different conferences.
We divided the chapters we were going to write between us, so we could write about the subjects we were most comfortable with. This doesn’t mean we could write everything from the top of our minds, a lot of investigating had to be done, if only to write about the correct and complete syntax of features. You may be using a certain feature in your day to day job, but that doesn’t mean you use it to its full potential. There are options in the feature that are not applicable in your situation and therefor not used. But when writing about a feature you must try to be as complete as possible, without just copying the documentation.
Besides writing about the syntax of features, we also tried to come up with use-cases and/or examples of the usage. When you pick up your average book on databases you will probably see examples based on an ordering (orders and orderlines) or a human resource (employees and departments) model. Because we are both fans of Formula1 and Oracle is a big sponsor of the Red Bull Racing team and that happens to be the team where our countryman Max Verstappen is driving we went looking for a Formula1 related dataset. We found the Ergast Developer API ( where you can query all kinds of Formula1 data. They even provide a set of CSV files so we could populate an Oracle Database.
Using the always free tier of the Oracle cloud, I provisioned an Oracle 19c and an Oracle 21c database to import the csv files into relational tables. This was one of the first things I learned from writing this book. How can I upload csv files to the cloud and then access them as an external table so I can split the lines into columns in my tables. This was something I had done extensively on premises, but never before in the cloud.
On the other hand, I wrote a part about Private Temporary Tables, a feature I had never used before, so I had to investigate it, and just a couple of weeks after I had written about it, I found a use case at my client, so I used this feature in production. If I hadn’t written about it, I would have known about the existence of the feature, but not enough to use it in production code. Well, actually it is a one-off script to do some data fixing, but still, the script went to production.
All in all it was a great experience, especially since I had such a great co-author. Would I do it again? I don’t know. I enjoyed the experience a lot and it can only go downhill from here.

Leave a Reply

Your email address will not be published. Required fields are marked *