Redshift存储过程无法为参数设置默认值的语法问题
解决Amazon Redshift存储过程参数默认值的语法错误
错误原因
你的代码触发语法错误,是因为Amazon Redshift要求带默认值的存储过程参数必须显式指定参数模式(IN/OUT/INOUT),同时代码缺少存储过程必需的语言声明和过程体部分。
正确代码示例
CREATE OR REPLACE PROCEDURE "abc"(IN i_sample_size FLOAT DEFAULT 1.0) LANGUAGE plpgsql AS $$ BEGIN -- 在这里编写你的存储过程逻辑 -- 示例:打印参数值 RAISE NOTICE '当前采样大小: %', i_sample_size; END; $$;
关键修正点
- 显式添加
IN参数模式:Redshift对带默认值的参数强制要求明确声明模式(即使默认是IN),否则解析器无法识别DEFAULT关键字。 - 补充完整存储过程结构:必须指定
LANGUAGE plpgsql,并用$$包裹过程体逻辑,否则语法不完整。
内容的提问来源于stack exchange,提问作者Kartikeya Singh
相关产品推荐
相关产品推荐

