Old Books, Russian Hip-Hop, and Database Imports

The value of learning about lots of different topics really comes to the fore when you spot a connection, however tenuous, between things that on the surface have no bearing on each other at all.

I recently picked up a copy of the first Joel on Software book having read the second book in the series and once been a fan of the blog, it seemed only right to revisit the insights into software development that Joel Spolsky shared with the world in the early 2000’s. In the fast paced world of technology the interest in this material, dating as it does from a pre-Agile and pre-Cloud age, is in considering what foundational and unchanging lessons are worth a refresher on as well as considering how things have changed since that time. The biggest surprise so far has been somewhat foundational as the chapter on character sets (The Absolute Minimum Every Software Developer Absolutely, Positively, Must Know About Unicode and Character Sets (No Excuses!)) has really made me reconsider a topic I felt I was pretty familiar with already.

So, this is the “old” book, but what’s that got to do with Russian hip-hop?

I’ve discussed my love of German industrial metal music in the past (in this post), safe in the knowledge that like many fans of the genre around the world, my inability to speak German has little to do with my enjoyment of the music and can in many ways heighten it through the air of mystery that surrounds the unknown. This mindset has proven useful in building an appreciation for other international music (Swedish Melodic Death Metal, obviously, but also French rock/metal, but that’s another story), and into this open-mind dropped some Russian hip-hop.

While watching a very dodgy Russian action movie late one night, I was rather taken with the track that played over the end credits, in that “I don’t understand the lyrics, but I love the tune” way familiar to Rammstein fans. However, not wanting to get caught out humming along to something grossly inappropriate, I decided to check out the lyrics on iTunes and found myself a most wonderful surprise in how they were presented in Russian Cyrillic, something I thought particularly cool as I still had thoughts of character sets dancing through my head along with a new found appreciation of how hard this type of thing can be to deliver. (I don’t know if there’s an official video anywhere, but check out this link to the tune that caught my attention: https://youtu.be/7yW0T04DCQ0)

So, here’s the Russian hip-hop, but where’s the (inevitable) database connection?

My recent interest in building an Oracle environment is related to restoring a dump file of a very old database of mine for educational purposes. A very, very old database of mine that was originally hosted on a Windows server many, many years ago. The dump file is intact however and the import was going fine right up until it until it wasn’t and a review of the log file was needed. In there lurked this error (more than once):

ORA-12899 value too large for column

This odd contradiction (how could a column be created too small when the import was creating the column as well as importing the data into the column so is fully “aware” of every aspect) is one of those misleading errors – the problem is character set related, caused by a mismatch between the source database and the target being too great to be resolved by the import process.

The solution to the import problem was to create another throw-away database configured with the character set of the import and from there to either clone the PDB or more interestingly to take a look at the Database Migration Assistant for Unicode (DMU) as a more permanent fix, but for me the funny thing is how you notice how the dots can be joined between radically disconnected things when you know or are at least aware of what to look for.