Oracle is a great database. It is cutting edge and it has a huge team of developers behind it as well as massive funding.
There are not any areas where it lacks anything major that exists in other comparable databases.
The problem with Oracle is both that it is expensive in the first place, but also that all of the extras are chargeable and also expensive!
If you want anything above your standard database on one server then you re going to be paying extra. So you want high availability and a standby to fail-over too? Great, that’s Data Guard and you will need to pay extra. Would you like horizontal scaling multi master? You can have it in RAC but you are going to be writing a big cheque for it. Logical standbys with customized schema for reporting? You will want Streams for that and guess what?
What this leads to is organizations thinking long and hard about whether they really need the extra features or more correctly, thinking about if they can manage without them. This leads to clusters and architectures that are not optimum because of cost constraints and that leads to downtime and constraints further down the line.
Postgres on the other hand is free. It does not have a huge development team behind it but it does have a large number of committed contributors with a proven record of delivering cutting edge technology that works very well and very reliably.
I have heard it said that Postgres is not as fast as Oracle. Oddly enough, I have never seen any actual evidence of this but even if it is true, in all but a tiny majority of cases, it is irrelevant anyway.
Because of the fact that Postgres is free no matter what architecture you choose to use or configuration you employ, you are free to use the absolute best design that utilizes all of the features that Postgres offers (and it can do everything that Oracle does I case you are wondering),without worrying about cost.
You can scale your reads across multiple streaming replicas, you can create highly available and distributes clusters in different data center, with or without automatic monitoring and fail-over. You can create logical followers that let you perform reporting jobs etc using a different schema that is optimized for something other than your normal function.
There are many options for scaling and partitioning your data across servers and there are even multi master options at far cheaper prices than Oracle RAC.
And if you need to, Postgres provides some of the best options for getting data in from a wide range of sources (including Oracle systems) and querying it natively.
So in summary, yes, I believe that Postgres gives you far more options and ability to design and build the best database for your specific needs and then provides a range of options for scaling to meet increasing demands.