There’s one big reason that Postgres can’t kill Oracle, and it’s not the technology
Postgres is popular but can’t unseat Oracle due to its business practices. Here’s how Oracle wins with its contracts and database stickiness.
A few years back EnterpriseDB, built on Postgres, offered enterprises something they shouldn’t have been able to refuse: All the Oracle database goodness without any of the Oracle. Enterprises were intrigued, but the efforts foundered. The problem? Contracts. As Keith Alsheimer, chief marketing officer for EnterpriseDB, explained:
Some of the practices that Oracle has of locking customers in contractually is a real challenge. Even if they want to move over [to another database system], they still have this number of licenses they bought, and they have to pay support for them [even if those licenses remain unused]. It’s very hard to get out of that.
It’s not merely a matter of contracts, but also how Oracle sells. Over the years, Oracle has acquired a bevy of applications (ERP, CRM, SCM, etc.) and tends not to certify that those applications will work with any other database. They probably would work fine, but not many CIOs would take that risk, especially given that doing so would violate their (wait for it!) contracts.