在Redshift中调用含IF ELSE条件的存储过程时遇到问题
问题解决:Redshift存储过程中"operator does not exist: integer == integer"错误
错误原因
Redshift基于PostgreSQL,其PL/pgSQL语法中,判断数值相等需使用单个等号=,而非双等号==。双等号并非Redshift支持的相等比较运算符,因此触发该错误。
修正后的存储过程代码
create or replace procedure sp4(f1 IN int) as $$ begin IF f1 = 0 then CREATE TABLE myetl(a int, b varchar); ELSE insert into new_tbl(id) values(47); END IF; end; $$ LANGUAGE plpgsql;
说明
将原代码中的f1==0修改为f1 = 0后,重新创建存储过程,调用call sp4(0)即可正常执行对应的逻辑。
内容的提问来源于stack exchange,提问作者sirisha
相关产品推荐
相关产品推荐

