我意识到没有什么与SQL Server Management Studio类似的东西,所以我在思想上准备使用好的旧printf调试。唯一的问题是如何从存储过程中执行“printf”?
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)。
raise notice
mepcadol2#
这听起来像是你在寻找真正的调试能力。PostgreSQL实际上从PostgreSQL 8.3开始就引入了这个功能。
这是非常棒的,完全使PostgreSQL不辜负它的口号 “世界上最先进的开源数据库”。这是一种麻烦,以获得运行,但theselinks可能会帮助你开始。一旦启用,它允许你设置断点或定义输入和评估功能,所有通过一个方便的右键单击菜单在PGAdmin。
fquxozlt3#
沿着可靠的ol' RAISE命令,还有一些我听说过的第三方工具,尽管我从来没有使用过。
RAISE
ss2ws0br4#
PGAdmin有一个调试器:我在Ubuntu环境中用Postgres 12试过这个,它对我很有效:1.将此程序包安装apt-get install postgresql-12-pldebugger1.在过程所在的数据库中运行此命令创建扩展pldbgapi;1.在您的PostgreSQL安装文件夹中,确切地说是在data文件夹中,更改postgresql.conf文件中的此参数shared_preload_libraries = 'plugin_debugger'注意:在进行此更改后,您需要重新启动Postgres1.在pgAdmin中,右键单击方案中过程列表中的过程,输入参数值并选择调试
rnmwe5a25#
我知道这个答案来得有点晚,但我有完全相同的问题很多年前.我需要写几个非常复杂的存储过程.我环顾了许多程序,只有一个有完美的,用户友好的功能.我使用“SQL Manager for PostgreSQL”https://www.sqlmanager.net/products/postgresql/manager我可以通过一步一步的调试,断点和可编辑的输入变量来完全调试我的函数。直到现在我还没有找到任何其他的产品来做这件事。它确实有点贵(但它很快就能为你节省时间......),但如果你需要编写复杂的函数,这是你的朋友;-)x1c 0d1x
5条答案
按热度按时间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)。
mepcadol2#
这听起来像是你在寻找真正的调试能力。PostgreSQL实际上从PostgreSQL 8.3开始就引入了这个功能。
这是非常棒的,完全使PostgreSQL不辜负它的口号 “世界上最先进的开源数据库”。这是一种麻烦,以获得运行,但theselinks可能会帮助你开始。一旦启用,它允许你设置断点或定义输入和评估功能,所有通过一个方便的右键单击菜单在PGAdmin。
fquxozlt3#
沿着可靠的ol'
RAISE
命令,还有一些我听说过的第三方工具,尽管我从来没有使用过。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中,右键单击方案中过程列表中的过程,输入参数值并选择调试
rnmwe5a25#
我知道这个答案来得有点晚,但我有完全相同的问题很多年前.我需要写几个非常复杂的存储过程.我环顾了许多程序,只有一个有完美的,用户友好的功能.我使用“SQL Manager for PostgreSQL”https://www.sqlmanager.net/products/postgresql/manager
我可以通过一步一步的调试,断点和可编辑的输入变量来完全调试我的函数。直到现在我还没有找到任何其他的产品来做这件事。它确实有点贵(但它很快就能为你节省时间......),但如果你需要编写复杂的函数,这是你的朋友;-)x1c 0d1x