debugging 如何调试postgresql存储过程?

l7wslrjt  于 2023-10-24  发布在  PostgreSQL
关注(0)|答案(5)|浏览(325)

我意识到没有什么与SQL Server Management Studio类似的东西,所以我在思想上准备使用好的旧printf调试。
唯一的问题是如何从存储过程中执行“printf”?

7gs2gvoe

7gs2gvoe1#

要“打印”一条消息,可以在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
(But我从来没有使用它,因为我不使用pgAdmin)。

mepcadol

mepcadol2#

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

这是非常棒的,完全使PostgreSQL不辜负它的口号 “世界上最先进的开源数据库”。这是一种麻烦,以获得运行,但theselinks可能会帮助你开始。一旦启用,它允许你设置断点或定义输入和评估功能,所有通过一个方便的右键单击菜单在PGAdmin。

fquxozlt

fquxozlt3#

沿着可靠的ol' RAISE命令,还有一些我听说过的第三方工具,尽管我从来没有使用过。

ss2ws0br

ss2ws0br4#

PGAdmin有一个调试器:我在Ubuntu环境中用Postgres 12试过这个,它对我很有效:
1.将此程序包安装
apt-get install postgresql-12-pldebugger
1.在过程所在的数据库中运行此命令
创建扩展pldbgapi;
1.在您的PostgreSQL安装文件夹中,确切地说是在data文件夹中,更改postgresql.conf文件中的此参数
shared_preload_libraries = 'plugin_debugger'
注意:在进行此更改后,您需要重新启动Postgres
1.在pgAdmin中,右键单击方案中过程列表中的过程,输入参数值并选择调试

rnmwe5a2

rnmwe5a25#

我知道这个答案来得有点晚,但我有完全相同的问题很多年前.我需要写几个非常复杂的存储过程.我环顾了许多程序,只有一个有完美的,用户友好的功能.我使用“SQL Manager for PostgreSQL”https://www.sqlmanager.net/products/postgresql/manager
我可以通过一步一步的调试,断点和可编辑的输入变量来完全调试我的函数。直到现在我还没有找到任何其他的产品来做这件事。它确实有点贵(但它很快就能为你节省时间......),但如果你需要编写复杂的函数,这是你的朋友;-)x1c 0d1x

相关问题