You need to enable JavaScript to run this app. PostgreSQL 11 从存储过程获取结果集报游标不存在错误如何处理
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL 11 从存储过程获取结果集报游标不存在错误如何处理

问题排查与解决

根因分析

调用存储过程时你主动给INOUT参数_result_one传了值'sss',覆盖了参数默认的游标名'rs_resultone',实际打开的游标名称是sss,和后续FETCH语句指定的rs_resultone不匹配,因此触发游标不存在的报错。

两种可行调用方案

方案1:使用默认游标名调用

不传入自定义参数值,直接使用存储过程预设的默认游标名即可:

BEGIN;
CALL sp_address();
FETCH ALL FROM "rs_resultone";
END;

方案2:匹配自定义游标名调用

如果需要自定义游标名称,后续FETCH语句的游标名要和传入的参数值保持一致:

BEGIN;
CALL sp_address('sss');
FETCH ALL FROM "sss";
END;

补充说明

  • 你编写的存储过程逻辑本身没有问题,仅需要保证传入的游标名和后续FETCH使用的名称完全匹配即可
  • refcursor类型的INOUT参数在存储过程调用时,传入的字符串会直接作为游标名使用,大小写敏感需要特别注意

内容的提问来源于stack exchange,提问作者Rosh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 15:06:05