I noticed your porting problems page and the Postgres 7.3 version that is just about to go release candidate will have the following features that will help you:
* DROP COLUMN
* pl/pgsql procs can return recordsets
* Prepared statements
* CREATE OR REPLACE on most objects
* You should use 'text' instead of 'clob' and 'bytea' instead of 'blob'.
* ALTER TABLE/SET STORAGE will let you define the storage strategy for your large objects
* The contrib/ltree module does indexed hierarchies, but requires and extra module to be compiled into the target postgres installation.
In addition, it is written: "The existing functions seem to be easy to convert. PostgreSQL does not support variable number of parameters with DEFAULT values."
The way to get around this is to use function overloading in PostgreSQL.
The following document describes the caveats in porting from Oracle to PostgreSQL: http://www15.us.postgresql.org/users-lounge/docs/7.3/postgres/plpgsql-porting.html
It was written by one of the guys who was involved in porting OpenACS to PostgreSQL. OpenACS has quite complex data structures, and makes heavy use of stored procedures.