将MySQL函数迁移至Amazon Redshift时DECLARE语句报错求助
问题解决:Redshift中DECLARE语句语法错误
Redshift采用基于PostgreSQL的PL/pgSQL语法,和MySQL的变量声明规则存在差异。你当前的写法DECLARE saldoAtual, saldoInicial, idPerfil INT default 0;不符合Redshift的语法要求——Redshift不支持多个变量共享一个类型声明,必须为每个变量显式指定数据类型(即使类型完全相同)。
修正后的写法
写法1:每行声明一个变量(推荐,可读性更高)
DECLARE saldoAtual INT DEFAULT 0; saldoInicial INT DEFAULT 0; idPerfil INT DEFAULT 0;
写法2:单行声明多个变量(每个变量都显式指定类型)
DECLARE saldoAtual INT DEFAULT 0, saldoInicial INT DEFAULT 0, idPerfil INT DEFAULT 0;
补充说明
Redshift里INT是INTEGER的合法别名,报错的核心原因是多变量共享类型的语法不符合PL/pgSQL规范,而非INT本身存在问题。
内容的提问来源于stack exchange,提问作者Thais Lino
相关产品推荐
相关产品推荐

