为什么我会收到以下错误?:
错误:查询没有结果数据的目标
这是我的功能:
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
block ,但我只是把它拿出来。
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 - 错误 : query has no destination for result data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42149695/