Having bean a lead developer in a company that was an Oracle reseller (pretty much a necessity in some markets), your characterization of Oracle is partly wrong; the part that isn't wrong is a gross oversimplification.
I've visited some of the places where Oracle's developers work, and as you might expect I am (or rather *was*) pretty familiar with their product. Trust me, they pour an almost unthinkable amount of money into developing unique and useful technology. As you might suspect they don't do it out of the goodness of their heart; they don't even do it out of pride in the product. They do it in order to encourage large, institutional customers to make their systems dependent on features they can only get from Oracle.
There's good and bad aspects to this lock-in strategy. Some of the things Oracle simply does better than anyone else, such as transaction isolation (in an ACID environment). When you develop and test on Oracle, you can pretty much proceed like the user has exclusive access to the database -- no worrying about things like dirty reads or the like (although the DBA had better make sure he's allocated enough rollback segments). It's nice, but not critical; but it also makes switching to a different RDBMS inconvenient. Oracle has gone farther down this path than you probably ever imagined, right up to creating something they call "virtual private databases" -- super-long duration wrapping transactions that persist across database connections and function something like a fork in a source control system. I've known *very* large data acquisition and management operations (e.g. a commercial vendor of worldwide street data for GIS) that depend on capabilities they can *only* get from Oracle.
There are some things about Oracle I really like, like their transaction log management tools, which make it easy to find a past set of changes to your data and undo them with a wave of your magic wand, as if they never happened. For me that's a killer feature. On the other hand they've also done sleazy, bottom-feeder things to lock clients in, like making the way their JDBC drivers handle BLOBs incompatible with everyone else. They may have fixed that, but I don't think it was accidental this annoying incompatibility persisted so long.
I've also visited Oracle sales offices, and know about how they handle "channel" sales. It's all very numbers driven. Oracle's corporate culture is that they don't care about the customer, once he's good and locked in. Oracle's licensing is very complex, it take days of study to figure out what you're allowed to do with your Oracle installation. If a customer makes a mistake he doesn't get any slack; he's got to pay up fast. On the flip side, if a customer accidentally spends five or ten times what he needs (very easy to do), or if he licenses his installation in a way that won't allow for the growth he needs to plan for (also very easy to do), nobody is going to tell him. He's a sucker, and they've got quarterly targets to meet. It flies in the face of most people's instincts to treat customers this way.
Frankly, I find Oracle's corporate values detestable; but it's possible to work with them. They make sure it's *always* possible to work with them, because they want your money. But *don't* expect your Oracle salesman or reseller to take care of you, to look out for you, to warn you if you are about to make a mistake that's in their favor, or to have pity on you if such a mistake leaves you strapped over a barrel. Oracle's business strategy is *built* upon exploiting locked-in customers. You must approach a relationship with Oracle in a defensive posture -- as indeed you should with any agreement other than free software licenses.