We've taken the (increasingly common) approach of developing on HSQLDB and deploying on Oracle. HSQLDB has nice features - such as simple to install and use on developers machines - easy debugging (you can see the SQL directly in the logs) - and stopping and starting it is a breeze. Oh and it runs much quicker than Oracle (at least for some data loads). ORM software such as Hibernate means being database agnostic is pretty simple. (Before you ask - the integration server and test version all use Oracle)
AlexBacon
@AlexBacon
Best posts made by AlexBacon
Latest posts made by AlexBacon
-
RE: Hate is too weak an adjective
-
RE: Hi! I'm your Oracle DBA.
I totally agree - I worked on an Oracle Datawarehousing project, spent a year as a DBA and now (thankfully) am back to Java programming.
Oracle is - to use the Australian Expression - a 'Brick Sh**house'. Yes - it has features years ahead of any other database - but from a developer point of view the basics haven't changed in 10 (20? years) - and are frankly rubbish compared to more modern systems - for example:
1) Column names, table names, foreign names etc are limited to 30 characters and must be unique in the schema- leading to helpful foreign key names like FK_CENTRAL_ACCOUNTS_T_CLIE43 - of course most people just give up and try and debug using the autogenerated foreign key names of FK012312312 - nice.
2) Error messages are rubbish - I'm sorry - but ' ORA-666 Invalid Identifier' - really helpful - doesn't tell you what token was wrong - great when you have 1000s of characters of SQL to trawl through.
3) Tracking the SQL executed on Oracle is difficult - yes you can turn on tracing but it kills performance and then you need to process the trace files (on the server of course) with TKPROF to read them! (Oh and you really need a DBA to set it up for you)
4) Most of the Oracle features work - but are a pain in the neck to implement - I remember sitting through a day of an Oracle training session where the instructor couldn't get Replication to work. Transportable tablespaces are great as long as you know if your source and target OSs are bigendian or littleendian and how to change between the two.
5) Most modern databases have the concept multiple databases running under some umbrella process - with separate users, system tables, security for all of them - simple for maintainance and easy to use - not Oracle. Anyone who has spent any time messing with public synonyms and cross schema priviliges will know what I mean here.
6) Oh and there are nice features such as storing empty strings as nulls - (hello - the two are DIFFERENT).
Anyway - Oracle has heaps of features - but it is marketing driven rather than developer driven - and it is the developers that suffer.