web-dev-qa-db-fra.com

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?

29
mark

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 la "notification".

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).

31

Il semble que vous recherchiez une capacité de débogage réelle. PostgreSQL a en fait introduit cette fonctionnalité en commençant par PostgreSQL 8. .

Debugger

C'est fantastique et rend PostgreSQL à la hauteur de son slogan "la base de données open source la plus avancée du monde" . C'est un peu compliqué de démarrer, mais cesliens 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 et d'évaluer des fonctions tout au long d'un menu pratique de clic droit dans PGAdmin. Right click menu

11
Joel B

En plus des commandes fidèles ol 'RAISE, il y a aussi quelques outils tiers dont j'ai entendu parler, bien que je ne les ai jamais utilisés.

5
bma