我正在寻找有关在pgAdmin3下为PostGreSQL定义的SQL函数的帮助。
这是一个简单的函数,应该计算给定特定ID的比率,但是当我尝试添加该函数时,会出现错误消息。
这是该函数的代码:
CREATE OR REPLACE FUNCTION data.func_net_exposure(id_fund_arg text)
RETURNS real AS
$BODY$
DECLARE
net_exposure real;
AUM smallint;
BEGIN
AUM := (SELECT sum(cash_fund_total) from main.main_cash where id_fund = id_fund_arg);
net_exposure := (SELECT ROUND(sum(exposure_eur)/(100*AUM)) from main.main_inventory where id_fund = id_fund_arg);
return net_exposure;
END;
$BODY$
这是我尝试添加功能时收到的错误消息:
发生错误:
13:13:54:错误:错误:在声明为的函数中返回类型不匹配 返回实型详细信息:函数的最终语句必须为SELECT或 插入/更新/删除返回。上下文:SQL函数 “ func_net_exposure”
关于如何解决此错误的任何线索?
答案 0 :(得分:0)
系统认为函数的语言是SQL,因此希望最后一个语句是SELECT
或... RETURNING
。语言应为PL / pgSQL。添加如下语言规范:
CREATE OR REPLACE FUNCTION data.func_net_exposure(id_fund_arg text)
RETURNS real AS
$BODY$
...
$BODY$
LANGUAGE PLpgSQL;