I just start to learn plsql and plpgsql. There are a lot of comparison of pl/sql and pl/pgsql available online. I am wondering why plsql work well on Postgresql and how it work? Is the code converted to plpgsql code? If use postgresql database server, which one is better between plsql and pl/pgsql?
Your feedback is highly appreciated.
It isn't "plsql", just "SQL" - but I might be losing something in the translation. "pl/sql" is an Oracle thing that is indeed like "pl/pgsql" - but "pl/sql" does not directly work, let alone well, on PostgreSQL...
Anyway, writing a function in "LANGUAGE sql" means you are limited to only those things SQL can do. Using pl/pgsql gives you access to the power of procedural logic among other things.
There is no "better" - but the general rule is if it can be done using SQL then do so since you are likely to see better performance. When you need to do something SQL cannot do then consider pl/pgsql.
David J.
Like David has said, it is not clear what you are talking about.
PL/SQL runs only on an Oracle DB
SQL - there is a Postgres version for Postgres and an Oracle version for Oracle
SPL - This is a language that is added on to Postgres and it is intended to be as much like Oracle PL/SQL as is possible. It allows people to migrate from Oracle to Postgres with minimal changes to code.
PL/PGSQL this is Postgres only. It is kind of like PL/SQL but also very different. I prefer this over SPL because, IMO, it performs better.