函数返回值一般是某一类型值,如int,varchar,date等,返回结果集时就需要用到setof语法。

  • 创建数据

    create table class(id number primary key, name varchar(20));

    create table student(id number, name varchar(20),classtid number references class);

    insert into class values (1, '六年一班'),(2, '六年二班'),(3, '六年三班');

    insert into student values (1, '张三',1);

    insert into student values (2, '李四',2);

    insert into student values (3, '王五',2);

  • 例1

test=# \set SQLTERM /

test=# create or replace function f_get_class()

test-# returns setof class

test-# as

test-# $$

test$# select * from class;

test$# $$

test-# language sql;

test-# /

CREATE FUNCTION

  • 查询结果

test=# \set SQLTERM ;

test=# select * from f_get_class();

id | name

----+----------

1 | 六年一班

2 | 六年二班

3 | 六年三班

(3 行记录)

KingbaseES还支持对函数结果集的条件查询

test=# select * from f_get_class() where id =3;

id | name

----+----------

3 | 六年三班

(1 行记录)

  • 例2

test=# \set SQLTERM /

test=# create or replace function f_get_table(text) returns setof record as

test-# $$

test$# declare

test$# rec record;

test$# begin

test$# for rec in EXECUTE 'select * from ' || $1 loop

test$# return next rec;

test$# end loop;

test$# return;

test$# end

test$# $$

test-# language 'plpgsql';

test-# /

CREATE FUNCTION

  • 查询结果

test=# select * from f_get_table('student') as student(stuid number, name varchar(20),classtid number);

stuid | name | classtid

-------+------+----------

1 | 张三 | 1

2 | 李四 | 2

3 | 王五 | 2

(3 行记录)

test=# select * from f_get_table('class') as class(id number, name varchar(20));

id | name

----+----------

1 | 六年一班

2 | 六年二班

3 | 六年三班

(3 行记录)

KingbaseES函数如何返回结果集的更多相关文章

  1. Oracle中函数/过程返回结果集的几种方式

    原文 Oracle中函数/过程返回结果集的几种方式 Oracle中函数/过程返回结果集的几种方式:    以函数return为例,存储过程只需改为out参数即可,在oracle 10g测试通过.    ...

  2. Oracle中函数如何返回结果集

    在Oracle中,用函数返回结果集有时候要用到,下面是demo: 1 2 3 4 5 6 7 create or replace type t_test as object ( id integer, ...

  3. Oracle中函数/过程返回多个值(结果集)

    Oracle中函数/过程返回结果集的几种方式: 以函数return为例,存储过程只需改为out参数即可,在oracle 10g测试通过. (1) 返回游标: return的类型为:SYS_REFCUR ...

  4. postgresql 函数返回结果集(zz)

    pgsql function 系列之一:返回结果集--------------------------------------------------------------------------- ...

  5. oracle pipelined返回值函数 针对数据汇总统计 返回结果集方法

    近期需要一个汇总统计,由于数据太多,数据量太大所以在java程序中实现比较困难.若用后台程序统计,数据不能保证实时,同时实现周期比较长.顾使用函数返回结果集的方式,在不增加临时表的情况下实时获取数据. ...

  6. oracle函数返回结果集

    一.用自定义类型实现 1.创建表对象类型. 在Oracle中想要返回表对象,必须自定义一个表类型,如下所示: create or replace type type_table is table of ...

  7. oracle调用存储过程和函数返回结果集

    在程序开发中,常用到返回结果集的存储过程,这个在mysql和sql server 里比较好处理,直接返回查询结果就可以了,但在oracle里面 要 out 出去,就多了一个步骤,对于不熟悉的兄弟们还得 ...

  8. MyBatis调用存储过程,含有返回结果集、return参数和output参数

    Ibatis是我们经常使用的O/R映射框架,mybats是ibatis被Google收购后重新命名的一个工程,当然也做了大量的升级.而调用存储过程也是一次额C/S架构模式下经常使用的手段,我们知道,i ...

  9. PB中用oracle的存储过程返回记录集做数据源来生成数据窗口,PB会找不到此存储过程及不能正常识别存储过程的参数问题(转)

    (转)在PB中用oracle的存储过程返回记录集做数据源来生成数据窗口 首先oracle的存储过程写法与MSSQL不一样,差别比较大. 如果是返回数据集的存储过程则需要利用oracle的包来定义游标. ...

随机推荐

  1. archlinux-小米pro15_2020款使用archlinux(MX350显卡驱动安装)

    1.官网下载archlinux ISO镜像 https://archlinux.org/download/   使用磁力链接下载 2.使用软碟通将镜像写入U盘,制作成U盘启动盘 3.进入BIOS 关掉 ...

  2. Web思维导图实现的技术点分析(附完整源码)

    简介 思维导图是一种常见的表达发散性思维的有效工具,市面上有非常多的工具可以用来画思维导图,有免费的也有收费的,此外也有一些可以用来帮助快速实现的JavaScript类库,如:jsMind.KityM ...

  3. python小题目练习(二)

    题目:输出1-100之间不包括7的倍数,含有7的数的其他数 """Author:mllContent:输出1-100之间不包括7的倍数,含有7的数的其他数Date:202 ...

  4. 如何用python做出老师看了都给满分的GUI学生管理系统毕设

    序 言 哈喽大家好鸭!我是小熊猫 最近有什么有趣的事情发生吗?快来说给我听听( •̀ ω •́ )✧表弟大学快毕业了,学了一个学期Python居然还不会写学生管理系统,真的给我丢脸啊,教他又不肯学,还 ...

  5. 图文带你看懂JavaScritpt引擎V8与JS执行过程

    浏览器原理 浏览器内核与js引擎 浏览器内核又称"排版引擎","渲染引擎","浏览器引擎",叫法很多,简单来说干的活就是将代码(HTML,X ...

  6. string的底层实现

    String底层实现 string在C++也是一个重要的知识,但是想要用好它,就要知道它的底层是如何写的,才能更好的用好这个string,那么这次就来实现string的底层,但是string的接口功能 ...

  7. typescript关于postgres数据库的API封装

    文章结构     1 新建 postgres.ts 文件     2 配置文件说明     3 依赖引用说明     4 API使用示例   1 新建 postgres.ts 文件,代码如下: imp ...

  8. 翟佳:高可用、强一致、低延迟——BookKeeper的存储实现

    分享嘉宾:翟佳 StreamNative 联合创始人 编辑整理:张晓伟 美团点评 出品平台:DataFunTalk 导读:多数读者们了解BookKeeper是通过Pulsar,实际上BookKeepe ...

  9. Git上传仓库

    上传代码到gitee 方法1 1. 将远程仓库克隆到本地 git clone https://gitee.com/abc/aaa.git 2. 添加或修改本地文件 3. 将本地代码push到远程仓库 ...

  10. VMware虚拟机安装基于Debian的统信UOS系统

    统信操作系统(UOS)是一款美观易用.安全可靠的国产桌面操作系统.UOS预装了Google Chrome.WPS Office.搜狗输入法以及一系列原生应用.它既能让您体验到丰富多彩的娱乐生活,也可以 ...