Since leaving the job I was at for 8 years, I've had three gigs since December. First I took a contracting gig to get me through the holidays, at Centocor. This was a great experience, and I'll have to post about that one day. When that was up (even though they wanted to extend me) I took what I thought was going to be a great full time position at a company I'll leave un-named :) This was a horror story for another post. I left there as fast as was possible, and landed now at a truly great place to work.
The funny thing is - all three of these places are big Oracle shops. So, I've had my first experiences with Oracle.
At Centocor, they were doing their first big “validated” SQL Server rollout, and wanted to bring in someone to sort of “be there” to help them get it all sorted out, and to get thier practices in place, etc. Basically I worked with the Oracle DBA's and tried to show them how to accomplish in SQL Server the things they already knew how to do in Oracle. And I wrote a lot of scripts :) If you've never gone through a 21CFR11 Validation, be glad - it's a LOT of documentation.
At the “other” company I was the team lead and manager on some very cool and complex Windows software in .old and .NET. Oh, how I wish things would have been better there. I'll post about that one day when I know how to do it without being mean.
At the new place, I'm “just a developer” trying my best to do everything in .NET and maintaining the .old stuff when they force me to.
But at any rate - at all three companies I've noticed something regarding Oracle usage that is driving me crazy:
No stored procedures. All three companies insist on the developers writing their SQL as a bunch of sql = sql + ... command. UGH!
OK, maybe Centocor had some sprocs. But there was a lot of dynamic stuff going on there. The “other” company told me there were performance issues with using stored procedures in Oracle. What? Of course I had no idea, but deep inside I was sure I was talking to idiots. Did I mention I hated the place? This is the same place where the database group would change the schema and not tell the GUI developers until the app failed in QA :)
Now, even where I am now, I'm finding a LOT of dynamic SQL. NOT for cross-platform compatibility purposes, but the DBAs really don't want to create sprocs. What? Why? Again, I'm told it's a performance issue. Something about sprocs taking up all the RAM. I can't stop laughing, but - is there any merit to this?
Of course, we also have three different versions of Oralce, none of which support ANSI joins so I'm pulling my hair out trying to write even simple queries. How has Oracle survived without this? OMG.
Another example - Just the other day I had a fight on my hands. I was working on an app that had previously been partially developed. I needed to build a GUI around a certain table for maintenance. But there was no unique identifier. It had an ID field. But all the rows were NULL. I asked if it could be made to be an auto-number Identity like field. No - that apparently is hard in Oracle. Hard? I told them Access can do that, how can it be hard? Well, it just is. OK. So, finally they agreed to make it a varchar field so I can put in GUIDs that I'll create in my .NET code. And, get this, they insisted that it be 50 chars wide “just in case Microsoft changes the width of the GUID in the future.“ That darn Microsoft - always screwing things up!
I've heard horror stories for a long time now, about dealing with DBAs. But, I've always BEEN the DBA, so of course I laugh it off and think “no way it's that bad.“ But now I think I'm getting the picture.
So - can anyone shed some light? Have I just seen three extreme examples in a row? Or am I just spoiled by SQL Server?
| posted on Thursday, July 28, 2005 10:15 PM