PostgreSQL中 AnyElement AnyArray AnynonArray的区别与联系
postgresql 区别 联系
2023-09-11 14:20:28 时间
http://www.postgresql.org/docs/current/static/extend-type-system.html#EXTEND-TYPES-POLYMORPHIC
先看一个例子:
CREATE OR REPLACE FUNCTION myappend01(anyelement, anyelement) RETURNS anyelement AS $$ SELECT $1 || $2; $$ LANGUAGE SQL;
执行(按 AnynonArray来传递输入参数):
pgsql=# select myappend01('abc', 'def'); ERROR: could not determine polymorphic type because input has type "unknown" pgsql=#
pgsql=# select myappend01('abc'::text, 'def'::text); myappend01 ------------ abcdef (1 row) pgsql=#
执行(按 AnyArray来传递输入参数):
pgsql=# select myappend01(ARRAY['mm','nn'], ARRAY['xx','yy']); myappend01 --------------- {mm,nn,xx,yy} (1 row)
可以认为 AnyElement = AnyArray || AnynonArray
再看一个例子:
pgsql=# select myappend02('abc', 'def'); ERROR: could not determine polymorphic type because input has type "unknown" pgsql=# pgsql=# pgsql=# select myappend02('abc'::text, 'def'::text); myappend02 ------------ abcdef (1 row) pgsql=#
pgsql=# select myappend02(ARRAY['aa','bb'], ARRAY['cc','dd']); ERROR: function myappend02(text[], text[]) does not exist LINE 1: select myappend02(ARRAY['aa','bb'], ARRAY['cc','dd']); ^ HINT: No function matches the given name and argument types. You might need to add explicit type casts. pgsql=#
相关文章
- Serverless 解惑——函数计算如何访问 PostgreSQL 数据库
- PostgreSQL 自动输入密码(转)
- 5月21日 上海PostgreSQL象行中国技术沙龙
- PostgreSQL Oracle兼容性之 - TZ_OFFSET
- PostgreSQL 9.6 引领开源数据库攻克多核并行计算难题
- PostgreSQL 使用advisory lock或skip locked消除行锁冲突, 提高几十倍并发更新效率
- PostgreSQL 函数稳定性与constraint_excluded分区表逻辑推理过滤的CASE
- 用Valgrind检测PostgreSQL内存泄露
- PostgreSQL:修改数据库用户的密码
- PostgreSQL的学习心得和知识总结(四十八)|关于PostgreSQL数据库开源作业调度扩展 pg_cron Schedule最小粒度为秒级 的实现方案