Comment déboguer les procédures stockées postgresql?
Je me rends compte qu'il n'y a rien de similaire à SQL Server Management Studio, donc je suis mentalement prêt à utiliser le bon vieux débogage printf.
La seule question est de savoir comment faire "printf" à partir d'une procédure stockée?
3 réponses
Pour "imprimer" un message, vous pouvez utiliser raise notice
depuis une fonction PL / pgSQL:
http://www.postgresql.org/docs/current/static/plpgsql-errors-and-messages.html
Notez que le client doit avoir défini la valeur de "client_min_messages" au niveau approprié pour recevoir le "notice".
PgAdmin a un débogueur pour les fonctions: http://www.pgadmin.org/docs/1.18/debugger.html
(mais je ne l'ai jamais utilisé car je n'utilise pas pgAdmin).
On dirait que vous recherchez une capacité de débogage réelle. PostgreSQL a effectivement introduit cette fonctionnalité en commençant par PostgreSQL 8.3.
C'est fantastique et rend totalement PostgreSQL à la hauteur de son slogan "La base de données open source la plus avancée au monde". C'est un peu compliqué de courir mais ceux-ci links pourrait vous aider à démarrer. Une fois activé il vous permet de définir des points d'arrêt ou de définir des entrées & évaluer les fonctions tout au long d'un menu pratique clic droit dans PGAdmin.
Avec les commandes RAISE
, Il y a aussi quelques outils tiers dont j'ai entendu parler, bien que je ne les aie jamais utilisés.
- plpgsql Lint: https://github.com/okbob/plpgsql_lint
- débogueur EDB: http://www.enterprisedb.com/docs/en/9.0/asguide/Postgres_Plus_Advanced_Server_Guide-17.htm . je crois comprendre que le débogueur EnterpriseDB est livré avec leur package Postgres Studio.