PL/pgSQL的anyelement例子

简介:

http://www.postgresonline.com/journal/archives/239-The-wonders-of-Any-Element.html

定义函数

复制代码
pgsql=# CREATE OR REPLACE FUNCTION diff_inc(IN anyelement, IN anyelement
pgsql(#   , OUT diff integer, OUT f_val anyelement, OUT l_val anyelement)
pgsql-# RETURNS record
pgsql-# AS
pgsql-# $$
pgsql$# BEGIN
pgsql$#    diff = ($1 - $2)::integer;
pgsql$#    f_val = $1 +1;
pgsql$#    l_val = $2 +1; 
pgsql$# END;
pgsql$# $$
pgsql-# language plpgsql;
CREATE FUNCTION
pgsql=# 
复制代码

带入不同的数据类型进行运算:

复制代码
pgsql=# select (diff_inc(12,14)).*;
 diff | f_val | l_val 
------+-------+-------
   -2 |    13 |    15
(1 row)


pgsql=# SELECT (diff_inc('2011-12-31'::date, '2012-01-05'::date)).*;
 diff |   f_val    |   l_val    
------+------------+------------
   -5 | 2012-01-01 | 2012-01-06
(1 row)

pgsql=# 
复制代码

但是,它有一个限制:一旦第一个参数确定,后面的参数必须和它的类型一致。









本文转自健哥的数据花园博客园博客,原文链接:http://www.cnblogs.com/gaojian/p/3190622.html,如需转载请自行联系原作者


目录
相关文章
|
XML IDE 开发工具
13. 【Android教程】文本框 TextView
13. 【Android教程】文本框 TextView
246 2
|
12月前
|
SQL 监控 关系型数据库
如何查看MySQL使用的内存
综合运用上述方法,您可以全方位地监控和管理MySQL的内存使用。从简单查看配置到深入分析实时内存占用,每种方法都有其适用场景和优势。定期检查和调整MySQL的内存配置,对于维持数据库性能和稳定性至关重要。
1464 0
带你读《5G大规模天线增强技术》——2.3.2 信道模型介绍
带你读《5G大规模天线增强技术》——2.3.2 信道模型介绍
带你读《5G大规模天线增强技术》——2.3.2 信道模型介绍
|
算法 Java API
org.springframework.web.client.HttpClientErrorException: 429 Too Many Requests
org.springframework.web.client.HttpClientErrorException: 429 Too Many Requests
739 0
|
网络协议 关系型数据库 MySQL
MySQL技术专题—MySQL报错Got an error reading communication packets问题分析指南
MySQL技术专题—MySQL报错Got an error reading communication packets问题分析指南
3345 0
MySQL技术专题—MySQL报错Got an error reading communication packets问题分析指南
|
关系型数据库 PostgreSQL 机器学习/深度学习
|
7天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!