PostgreSQL prend en charge les langages de procédure enfichables et un projet existe pour étendre PostgreSQL avec PL/Java comme langue.
Je ne recommande pas de mettre trop de code dans le RDBMS. Les outils pour développer, tester et déboguer le code dans la couche application sont meilleurs que les outils pour le code dans le SGBDR.
De plus, de nombreux développeurs ne comprennent pas que le code à l'intérieur du RDBMS doit obéir à l'isolation des transactions. Ils essaient d'envoyer des e-mails à partir de déclencheurs, etc. Je pense que le code avec des effets secondaires devrait être dans la couche d'application, afin de ne pas créer d'effets fantômes (par exemple, un e-mail peut notifier un changement de base de données, même si le changement a été annulé).