PostgreSQL风格
create or replace function months_between() returns number as $function$ begin return 0; exception when … end; $function$ language plpgsql;
复制
Oracle风格
create or replace function months_between() return number as begin return 1; exception when … end; /
复制
差异对比
针对这两种编写风格,我们需要注意:
- 返回类型关键字的区别,一个是returns,一个是return。
- PG风格里我们需要注意下函数的主体结构,前后是一对双$符号,双$符号之间的名称可以自由命名,但需要注意前后要保持一致,特别是大小写。
- PG风格里需要指定编程语言(可从系统表pg_language查询),比较常见的是plpgsql或者sql
我们更推荐使用PG风格的函数创建形式。
创建函数示例
使用plpgsql创建一个简单函数
create or replace function f1_formatdate (vdate date, fmt varchar) returns varchar as $function$ begin return to_char(vdate,fmt); end; $function$ language plpgsql;
复制
如果没有复杂的业务逻辑判断,也可以使用sql语言来编写函数
create or replace function f2_formatdate (vdate date, fmt varchar) returns varchar as $$ select to_char(vdate,fmt); $$ language sql;
复制
调用方式
方式一:直接select调用
select f1_formatdate(current_date,'yyyy-mm');
复制
方式二:把函数当成表来select from调用,适用于函数返回row或者table时只获取部分列
select * from f2_formatdate(current_date,'yyyy/mm/dd');
复制
方式三:函数返回复合对象时通过符号“点”来调用
select (fun()).*
复制
最后修改时间:2021-12-08 15:45:53
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
2025年3月国产数据库大事记
墨天轮编辑部
831次阅读
2025-04-03 15:21:16
MogDB 发布更新,解决 openGauss 数据库在长事务情况下Ustore表膨胀问题
MogDB
281次阅读
2025-04-17 10:41:41
openGauss 7.0.0-RC1 版本正式发布!
Gauss松鼠会
188次阅读
2025-04-01 12:27:03
MogDB 发布更新,解决 openGauss 数据库在长事务情况下Ustore表膨胀问题
云和恩墨
175次阅读
2025-04-16 09:52:02
openGauss 7.0.0-RC1 版本体验:一主一备快速安装指南
孙莹
168次阅读
2025-04-01 10:30:07
一文快速上手openGauss
进击的CJR
106次阅读
2025-03-26 16:12:54
鲲鹏RAG一体机解决方案正式发布 openGauss DataVec向量数据库助力DeepSeek行业应用
Gauss松鼠会
101次阅读
2025-03-31 10:00:29
openGauss6.0.0适配操作系统自带的软件,不依赖三方库
来杯拿铁
69次阅读
2025-04-18 10:49:53
opengauss使用gs_probackup进行增量备份恢复
进击的CJR
64次阅读
2025-04-09 16:11:58
openGauss 7.0.0-RC1 版本正式发布!
openGauss
45次阅读
2025-04-01 12:27:04
目录