PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

PostgreSQL vs Oracle :vérification à la compilation de PL/pgSQL

Oui, c'est un problème connu.

PL/pgSQL (comme toute autre fonction, sauf sur SQL ) est une « boîte noire » pour PostgreSQL, il n'est donc pas vraiment possible de détecter des erreurs sauf lors de l'exécution.

Vous pouvez faire plusieurs choses :

  1. enveloppez votre fonction en appelant SQL requêtes dans BEGIN / COMMIT déclarations afin d'avoir un meilleur contrôle sur les erreurs ;
  2. ajouter EXCEPTION blocs à votre code pour détecter et suivre les erreurs. Notez cependant que cela affectera les performances de la fonction ;
  3. utiliser plpgsql_check extension , développé par Pavel Stěhule, qui est l'un des principaux contributeurs au développement PL/pgSQL. Je suppose que cette extension finira par entrer dans le cœur de PostgreSQL, mais cela prendra un certain temps (nous sommes maintenant dans l'état 9.4beta3) ;
  4. Vous pouvez également vous pencher sur cette question connexe :vérification de la syntaxe postgresql sans exécuter la requête

Et il semble vraiment que vous ayez un énorme besoin d'un cadre de test unitaire.