sql >> Base de Datos >  >> RDS >> PostgreSQL

PostgreSQL vs Oracle:comprobación en tiempo de compilación de PL/pgSQL

Sí, este es un problema conocido.

PL/pgSQL (como cualquier otra función, excepto en SQL ) es una "caja negra" para PostgreSQL, por lo que no es realmente posible detectar errores excepto en tiempo de ejecución.

Puedes hacer varias cosas:

  1. envuelve tu función llamando a SQL consultas en BEGIN / COMMIT declaraciones para tener un mejor control sobre los errores;
  2. añadir EXCEPTION bloques a su código para detectar y rastrear errores. Tenga en cuenta, sin embargo, que esto afectará el rendimiento de la función;
  3. use plpgsql_check extensión , desarrollado por Pavel Stěhule, quien es uno de los principales contribuyentes al desarrollo de PL/pgSQL. Supongo que eventualmente esta extensión se convertirá en el núcleo de PostgreSQL, pero llevará algo de tiempo (ahora estamos en el estado 9.4beta3);
  4. También puede consultar esta pregunta relacionada:comprobación de sintaxis postgresql sin ejecutar la consulta

Y realmente parece que tiene una gran necesidad de un marco de pruebas unitarias.