为什么我会出现以下错误?:
错误:查询没有结果数据的目标
这是我的职责:
CREATE OR REPLACE FUNCTION public.SumASCII(
value character varying)
RETURNS int
LANGUAGE 'plpgsql'
COST 100.0
VOLATILE NOT LEAKPROOF
AS $function$
DECLARE finalResult int;
DECLARE tempChar character;
DECLARE valueLength int;
DECLARE tempResult int;
BEGIN
SELECT LENGTH(value) INTO valueLength;
SELECT finalResult = 0;
SELECT tempResult = 0;
DO
$do$
BEGIN
FOR i IN 1..valueLength LOOP
SELECT SUBSTRING(value, i, 1) INTO tempChar;
SELECT ASCII(tempChar) INTO tempResult;
SELECT finalResult += tempResult;
END LOOP;
END
$do$;
RETURN finalResult;
END;
$function$;
我也用同样的错误看了其他问题,但它们似乎与我的问题无关。我相信答案很简单,但我似乎看不出问题所在。。我声明一个int,我返回一个int。。
按如下方式调用函数:
SELECT SumASCII('abc')
最佳答案
我可以通过简化很多东西来让它工作。我相信DECLARE
只需要使用一次(例如https://www.postgresql.org/docs/9.6/static/plpgsql-declarations.html),我不确定您想用DO
…END
块做什么,但我只是把它去掉了。
CREATE OR REPLACE FUNCTION public.SumASCII(
value character varying)
RETURNS int
LANGUAGE 'plpgsql'
COST 100.0
VOLATILE NOT LEAKPROOF
AS $function$
DECLARE
finalResult int := 0;
BEGIN
FOR i IN 1..LENGTH(value) LOOP
finalResult := finalResult + ASCII(SUBSTRING(value, i, 1));
END LOOP;
RETURN finalResult;
END;
$function$;
SELECT SumASCII('abc')
正在返回294
关于sql - PostgreSQL-错误:查询没有结果数据的目的地,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42149695/