我有一个问题,RETURN语句中缺少或错误的是什么,它一直崩溃错误2F005
我正在创建记录错误的表
drop table if exists public.funkcja_x;
create table public.funkcja_x
(
error_alert text
);
我正在创建函数
drop function if exists public.test();
create or replace function public.test()
returns text as
$body$
declare
v_error text;
begin
-- i intentionally create a table from a table that doesn't exist to force an error
drop table if exists public.tabela_final;
create table public.tabela_final as
select * from public.tabela_posrednia;
return 'OK';
exception when others then
v_error := SQLERRM;
insert into public.funkcja_x (error_alert) values (v_error);
end;
$body$
language plpgsql volatile cost 100;
alter function public.test() owner to postgres;
唤起:
select public.test();
并得到错误:
BŁĄD: osiągnięto koniec funkcji, brakuje instrukcji RETURN
Stan SQL: 2F005
Kontekst: funkcja PL/pgSQL test()
2条答案
按热度按时间bvhaajcl1#
缺少
RETURN
语句。PL/pgSQL中的任何非void函数都应返回数据。您的函数使用了RETURNS text
,但未返回任何值。可能缺少RETURN 'false'
。您可以使用
boolean
代替text作为返回类型。bfrts1fy2#
嗯我找到了一个解决办法,你必须替换文本才能作废,然后它就能工作了:)但是谢谢你的兴趣,对垃圾邮件感到抱歉:)