【问题标题】:How to create stored procedure with multiple select in Postgresql?如何在 Postgresql 中创建多选存储过程?
【发布时间】:2022-01-26 08:05:48
【问题描述】:

我在使用多选的 postgresql 中创建存储过程时遇到问题,这是我得到的错误

错误:必须指定函数结果类型 SQL 状态:42P13

这是我的查询:

create or replace function user_info(
    functn integer
)
language sql 
as 
$$
begin
    
    if(functn = 1) then
        select email, user_name, address from user;
        
    else if(functn = 2) then
        select email, member_name, phone from member;
        
    else
        select email, admin_name, post_code from admin;
    
    end if;
    
end
$$;

请任何人帮我解决这个问题,谢谢。

【问题讨论】:

  • 你正在做CREATE FUNCTION 没有RETURNS 子句。 (而且,你的函数没有任何事情并且什么都不返回)

标签: postgresql


【解决方案1】:

你的函数中有很多语法错误:

  • 您没有指定返回类型。
  • 您的函数不返回任何内容。
  • 正确的语法是elsif 而不是else if

试试这个:

create or replace function user_info(
    functn integer
)
returns table(email text, name text, contact text)
language plpgsql 
as 
$$
begin
    if functn = 1 then
        return query select email, user_name, address from user;
        
    elsif functn = 2 then
        return query select email, member_name, phone from member;
        
    else
        return query select email, admin_name, post_code from admin;
    
    end if;

end;
$$

【讨论】:

    猜你喜欢
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-02
    相关资源
    最近更新 更多