如何调试postgresql存储过程?

时间:2013-11-25 10:56:46

标签: postgresql debugging stored-procedures

我意识到没有类似于SQL Server Management Studio,所以我精神上准备好使用旧的printf调试。

唯一的问题是如何从存储过程中执行“printf”?

4 个答案:

答案 0 :(得分:26)

要“打印”消息,您可以在PL / pgSQL函数中使用raise notice
http://www.postgresql.org/docs/current/static/plpgsql-errors-and-messages.html

请注意,客户端必须将“client_min_messages”的值设置为适当的级别才能收到“通知”。

pgAdmin有一个函数调试器:http://www.pgadmin.org/docs/1.18/debugger.html

(但我从未使用它,因为我不使用pgAdmin)。

答案 1 :(得分:10)

听起来你正在寻找实际的调试功能。 PostgreSQL实际上从PostgreSQL 8.3开始引入了这个功能。

Debugger

这太棒了,完全让PostgreSQL不辜负它的标语"世界上最先进的开源数据库" 。这是一种麻烦,但these links可能会帮助你开始。启用后,它允许您设置断点或定义输入和输入。通过PGAdmin中方便的右键菜单评估所有功能。 Right click menu

答案 2 :(得分:5)

除了可信赖的'RAISE命令外,还有一些我听说过的第三方工具,虽然我从未使用它们。

答案 3 :(得分:0)

PGAdmin 有一个调试器:我在使用 Postgres 12 的 ubuntu 环境中尝试了这个,它对我有用:

  1. 安装这个包

    apt-get install postgresql-12-pldebugger

  2. 在您的程序所在的数据库中运行此命令

    创建扩展pldbgapi;

  3. 在您的 Postgresql 安装文件夹和数据文件夹中,在 postgresql.conf 文件中更改此参数

    shared_preload_libraries = 'plugin_debugger'

注意:进行此更改后,您需要重新启动 Postgres

  1. 在 pgAdmin 中右键单击架构中程序列表中的程序,输入参数值并选择调试