您可以在plpgsql函数内部更改IN参数吗?

问题描述

是否可以将函数标头中设置的参数更改为函数本身内部的其他参数?我阅读本文的方式似乎无法postgres tutorial link

解决方法

我要亲自回答这个问题。

简短的回答是。您可以在plpgsql函数中更改默认的IN参数。

请参见以下示例:

--CREATE SCHEMA it
CREATE FUNCTION it.foo (_animal TEXT ) RETURNS TEXT LANGUAGE plpgsql AS
$$
BEGIN
    IF _animal = 'cow' THEN
        _animal = 'steak';
    END IF;
    RETURN _animal;
END;
$$;

SELECT it.foo('cow');