You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Amazon Redshift存储过程调用及RAISE语句语法问题咨询

问题1:是否支持call proc_test1(p_1 => 'x')格式调用

  • Amazon Redshift完全支持使用**命名参数(=>语法)**调用存储过程,你给出的调用写法是合法的。
  • 唯一需要注意的前提是:你的存储过程proc_test1所在的schema在当前用户的search_path配置中,如果不在,需要在调用时补全schema前缀,比如call public.proc_test1(p_1 => 'x')。

问题2:RAISE;报错的原因

  • 这个报错是因为Redshift的PL/pgSQL语法和原生PostgreSQL存在差异:原生PostgreSQL支持在EXCEPTION块中直接写无参数的RAISE;来重抛当前捕获的异常,但Redshift的PL/pgSQL实现不支持无参数的RAISE语句,要求RAISE后必须指定异常级别、输出信息等参数。
  • 如果你要实现重抛异常的逻辑,可以改成如下写法:
EXCEPTION
 WHEN OTHERS THEN
  RAISE EXCEPTION 'Error: %', SQLERRM;

SQLERRM是内置变量,存储了当前捕获到的异常的错误信息,这样就可以把原始异常抛出,符合你原来的逻辑需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 13:39:00