postgresql 后处理SQL错误2F 005-返回制动装置

z8dt9xmd  于 2023-02-18  发布在  PostgreSQL
关注(0)|答案(2)|浏览(187)

我有一个问题,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()
bvhaajcl

bvhaajcl1#

缺少RETURN语句。PL/pgSQL中的任何非void函数都应返回数据。您的函数使用了RETURNS text,但未返回任何值。可能缺少RETURN 'false'
您可以使用boolean代替text作为返回类型。

bfrts1fy

bfrts1fy2#

嗯我找到了一个解决办法,你必须替换文本才能作废,然后它就能工作了:)但是谢谢你的兴趣,对垃圾邮件感到抱歉:)

相关问题