PostgreSQL存储过程查询结果赋值变量无输出问题咨询
PostgreSQL存储过程无NOTICE输出问题排查
你遇到的没有输出的问题主要有两个核心原因,按优先级排查即可:
1. 仅创建了存储过程,未主动调用
你运行的CREATE OR REPLACE PROCEDURE语句仅完成了存储过程的逻辑注册,不会自动执行内部代码。要触发逻辑需要主动调用PostgreSQL的存储过程调用命令:
-- 替换为你实际的schema名称执行 CALL schema.MyProcedure();
2. 客户端消息输出级别配置不足
PostgreSQL客户端默认的消息输出级别可能过滤了NOTICE级别的日志,调用前先执行以下语句调整输出级别即可看到打印内容:
SET client_min_messages = notice;
可选代码优化
你当前的计数查询不需要嵌套子查询,可以直接简化为如下写法,执行效率更高也更易读:
CREATE OR Replace PROCEDURE schema.MyProcedure() AS $$ DECLARE RowCount int = 100; BEGIN select count(*) into RowCount From schema.MyTable; RAISE NOTICE 'RowCount: %', RowCount; END; $$ LANGUAGE plpgsql;
内容的提问来源于stack exchange,提问作者JimmyBuffet_Express
相关产品推荐
相关产品推荐

