数据仓库服务 GAUSSDB(DWS)-伪类型
伪类型
GaussDB (DWS)数据类型中包含一系列特殊用途的类型,这些类型按照类别被称为伪类型。伪类型不能作为字段的数据类型,但是可以用于声明函数的参数或者结果类型。
当一个函数不仅是简单地接受并返回某种SQL数据类型的情况下伪类型是很有用。表1列出了所有的伪类型。
名字 |
描述 |
---|---|
any |
表示函数接受任何输入数据类型。 |
anyelement |
表示函数接受任何数据类型。 |
anyarray |
表示函数接受任意数组数据类型。 |
anynonarray |
表示函数接受任意非数组数据类型。 |
anyenum |
表示函数接受任意枚举数据类型。 |
anyrange |
表示函数接受任意范围数据类型。 |
cstring |
表示函数接受或者返回一个空结尾的C字符串。 |
internal |
表示函数接受或者返回一种服务器内部的数据类型。 |
language_handler |
声明一个过程语言调用句柄返回language_handler。 |
fdw_handler |
声明一个外部数据封装器返回fdw_handler。 |
record |
标识函数返回一个未声明的行类型。 |
trigger |
声明一个触发器函数返回trigger。 |
void |
表示函数不返回数值。 |
opaque |
一个已经过时的类型,以前用于所有上面这些用途。 |
声明用C编写的函数(不管是内置的还是动态装载的)都可以接受或者返回任何这样的伪数据类型。当伪类型作为参数类型使用时,用户需要保证函数的正常运行。
用过程语言编写的函数只能使用实现语言允许的伪类型。目前,过程语言不允许使用伪类型作为参数类型,只允许使用void和record作为结果类型。一些多态的函数还支持使用anyelement,anyarray,anynonarray anyenum和anyrange类型。
伪类型internal用于声明只能在数据库系统内部调用的函数,这些函数不能直接在SQL查询里调用。如果某函数至少有一个internal类型的参数,则不能从SQL里调用。建议不要创建任何声明返回internal的函数,除非该函数至少有一个internal类型的参数。
示例:
创建或替换函数showall()。
1 2 3 |
CREATE OR REPLACE FUNCTION showall() RETURNS SETOF record AS $$ SELECT count(*) from tpcds.store_sales where ss_customer_sk = 9692; $$ LANGUAGE SQL; |
调用函数showall()。
1 2 3 4 5 |
SELECT showall(); showall --------- (35) (1 row) |
删除函数。
1
|
DROP FUNCTION showall(); |
- 数据仓库服务GaussDB(DWS)_SQL on Anywhere
- DWS安全_数据仓库服务安全_DWS数据安全管理_DWS安全保障_DWS安全策略
- 调用GaussDB(DWS) API接口_数据仓库服务调用API_如何调用API_在DWS中调用API
- DWS资源管理_GaussDB(DWS)资源管理作用_DWS资源管控
- GaussDB(DWS)常用SQL_常用SQL命令_SQL语法
- GAUSS(DWS)工具_gsql工具_DataStudio工具_DSC工具
- DWS产品介绍_DWS产品优势_DWS功能_DWS使用场景_DWS是什么
- GaussDB数据库怎么转换类型_GaussDB安装_高斯数据库转换类型
- 数据库监控DMS_数据库智能运维_了解Auto Pilot_DMS_DWS节点监控
- 如何进行日志采集和转储_日志平台_日志接入_日志转储