如何解决错误:“ INTEGER”处或附近的语法错误第2行:v_stage INTEGER:= 0;
DECLARE
v_stage INTEGER:=0;
[...]
RETURN QUERY
SELECT 1.0::FLOAT,v_stage,sex,birthdate,place,district,subdistrict,village,race,complexion,eyecolor,haircolor,height,weight,hp,mother,father,picture,sidenote,mannerism,name,method,crimetype,suspect_id
FROM public.suspect
WHERE complexion = p_complexion TEXT,AND CASE WHEN p_eyecolor IS NOT NULL THEN eyecolor = p_eyecolor ELSE true END
AND CASE WHEN p_haircolor IS NOT NULL THEN haircolor = p_haircolor ELSE true END
AND CASE WHEN p_height FLOAT IS NOT NULL THEN height = p_height ELSE true END
AND CASE WHEN p_weight FLOAT IS NOT NULL THEN weight = p_weight ELSE true END
AND CASE WHEN p_sex IS NOT NULL THEN sex = p_sex ELSE true END
AND CASE WHEN p_sidenote TEXT IS NOT NULL THEN sidenote = p_sidenote ELSE true END
AND CASE WHEN p_mannerism TEXT IS NOT NULL THEN mannerism = p_mannerism ELSE true END
AND CASE WHEN p_method TEXT IS NOT NULL THEN method = p_method ELSE true END
AND CASE WHEN p_crimetype TEXT IS NOT NULL THEN crimetype = p_crimetype ELSE true END;
[...]
->错误:“ INTEGER”或附近的语法错误“总是知道该错误!我不知道为什么” ->第2行:v_stage INTEGER:= 0;
请能解决这个问题的人,我真的很感激...
使用注释中的代码更新:
DO
$$
DECLARE
v_stage INTEGER:=0;
RAISE NOTICE 'y';
RETURN QUERY
SELECT
1.0::FLOAT,picture
FROM
public.suspect
WHERE
complexion = p_complexion TEXT,AND
CASE WHEN
p_eyecolor IS NOT NULL
THEN
eyecolor = p_eyecolor
ELSE
true
END
AND
CASE WHEN
p_haircolor IS NOT NULL
THEN
haircolor = p_haircolor
ELSE
true
END;
END$$;
在DECLARE之前添加DO $$之后,又出现了另一个错误:错误:“ SELECT”第6行或附近的语法错误:返回查询
上下文:无效的类型名称“ QUERY SELECT 1.0 :: FLOAT”
解决方法
这可行:
DO $$
DECLARE
v_stage INTEGER:=0;
BEGIN
RAISE NOTICE 'test';
END$$;
NOTICE: test
DO
因此,我要说的是DECLARE
之前的内容。将函数的开始部分添加到您的代码示例中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。