我意识到没有与SQL Server Management Studio相似的东西,所以我已经做好了使用老式的printf调试的心理准备。
唯一的问题是如何从存储过程中进行“printf”?
我意识到没有与SQL Server Management Studio相似的东西,所以我已经做好了使用老式的printf调试的心理准备。
唯一的问题是如何从存储过程中进行“printf”?
raise notice
:看起来您正在寻找实际的调试功能。PostgreSQL实际上从 PostgreSQL 8.3 开始引入了这个功能。
这是非常棒的功能,完全符合PostgreSQL的口号"世界上最先进的开源数据库"。 它有点麻烦,但这些链接可能会帮助您入门。启用后,它允许您通过PGAdmin中方便的右键菜单设置断点或定义输入并评估函数。
除了可靠的RAISE
命令之外,还有一些第三方工具,我听说过,但从未使用过。
PGAdmin有一个调试器:我在Ubuntu环境下使用Postgres 12试过了,它对我有效:
安装这个包
apt-get install postgresql-12-pldebugger
在存储过程所在的数据库中运行此命令
CREATE EXTENSION pldbgapi;
在您的PostgreSQL安装文件夹中,确切地说是在数据文件夹中,更改postgresql.conf文件中的此参数
shared_preload_libraries = 'plugin_debugger'
注意:更改后需要重新启动Postgres
我知道这个答案有点晚,但是很多年前我也遇到了完全相同的问题。我需要编写几个非常复杂的存储过程。 我找了很多程序,只有一个具备完美且用户友好的功能。 我正在使用"SQL Manager for PostgreSQL" https://www.sqlmanager.net/products/postgresql/manager
我可以通过逐步调试、断点和可编辑的输入变量来完全调试我的函数。直到现在,我还没有找到其他产品可以做到这一点。它的价格有点高(但它能够快速回报你所节省的时间...),但如果你需要编写复杂的函数,它会成为你的好帮手;-)
raise notice
(http://www.postgresql.org/docs/current/static/plpgsql-errors-and-messages.html)是其相应的中文表达。但是,pgAdmin有一个PL/pgSQL调试器:http://www.pgadmin.org/docs/1.18/debugger.html - user330315