函数的使用方法和存储过程类似,具体语句如下:
CREATE [ OR REPLACE ] FUNCTION 函数名(
[IN|OUT] 参数1 数据类型,
[IN|OUT] 参数1 数据类型,
...
)
RETURNS 数据类型
LANGUAGE lang_name
AS
DECLARE
变量1 数据类型,
变量2 数据类型,
…
BEGIN
函数的程序体
END;
但是函数可以应用在SQL语句中,而存储过程则必须独立调用,另外函数必须指定返回值。
例2-58:将存储过程替换为按照地区分组的数量统计,具体语句如下:
CREATE FUNCTION new_orders_insert_func
(
IN o_id INTEGER,
IN d_id INTEGER,
IN w_id INTEGER
)
RETURNS INTEGER
AS
$$
DECLARE
count INTEGER;
BEGIN
INSERT INTO new_orders VALUES(o_id, d_id, w_id);
SELECT COUNT(*) INTO count FROM new_orders;
RETURN count;
END;
$$ LANGUAGE plpgsql;
执行获得返回值:
SELECT new_orders_insert_func(1,1,1);
new_orders_insert_func
------------------------
2
(1 row)
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




