A bunch of our servers were recently upgraded from Oracle 7.3 to Oracle 8.1.6 as part of an "upgrade everything" campaign.
Naturally, this broke a bunch of Perl scripts (which belong to a coworker) and at first I figured that DBD::Oracle simply needed to be rebuilt and the LD_LIBRARY_PATH variable reset. But NOOOOOOOOO, this is Solaris we're talking about. I got this message:
You must install a Solaris patch to run this version of the Java runtime. Please see the README and release notes for more information.
Turns out it's an issue specific to Solaris and Oracle 8.1.6 (or later). My options were to either to muck with the Oracle install, rebuild Perl with thread support or set LD_PRELOAD. Since I don't own the Oracle installation and I could never get thread support to build properly on Perl 5.6 or earlier, guess which option I chose?
Update: Upgrading to 8.1.7 seems to have solved this nasty little bugger.