gpt4 book ai didi

sql - PostgreSQL-错误 : query has no destination for result data

转载 作者:行者123 更新时间:2023-11-29 12:09:49 35 4
gpt4 key购买 nike

为什么会出现以下错误?:

错误:查询没有结果数据的目的地

这是我的功能:

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/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com