对于含有 out 类型参数的过程或者函数,只能通过块方式调用,这是因为,ksql 还不支持类似 Oracle 那样通过 var 定义变量。

一、带OUT的procedure 调用

创建过程:

create or replace procedure proc1( v_id integer, out v_retcode text, out v_retinfo text, out v_row_num integer)
AS
declare
begin
insert into table_new(id, name, age) select t.id, t.name, m.age from student t, employees m where t.id=m.id and t.id=v_id;
GET DIAGNOSTICS V_ROW_NUM := ROW_COUNT; -- 执行成功后的返回信息
V_RETCODE := 'SUCCESS';
V_RETINFO := '结束'; --异常处理
EXCEPTION
WHEN OTHERS THEN
V_RETCODE := 'FAIL';
V_RETINFO := SQLERRM;
end;
/

调用过程:

declare
v_retcode text;
v_retinfo text;
v_row_num integer;
v_id integer;
begin
v_id:=30;
CALL proc1(v_id, v_retcode, v_retinfo, v_row_num);
raise notice 'proc1 result is: %, %, %', v_retcode, v_retinfo, v_row_num;
end;
/

二、带 OUT 参数的function调用

创建函数:

create or replace function fun1( v_id integer, out v_retcode text, out v_retinfo text, out v_row_num integer)
AS $$
declare
begin
insert into table_new(id, name, age) select t.id, t.name, m.age from student t, employees m where t.id=m.id and t.id=v_id;
GET DIAGNOSTICS V_ROW_NUM := ROW_COUNT; -- 执行成功后的返回信息
V_RETCODE := 'SUCCESS';
V_RETINFO := '结束'; --异常处理
EXCEPTION
WHEN OTHERS THEN
V_RETCODE := 'FAIL';
V_RETINFO := SQLERRM;
end;
$$ language plpgsql
/

调用函数:

--function 可以不需要在 block 里调用
select fun1(12); --但如果需要out返回信息,则必须通过block 传入变量
declare
v_retcode text;
v_retinfo text;
v_row_num integer;
v_id integer;
begin
v_id:=30;
select * from fun1(v_id) into v_retcode, v_retinfo, v_row_num;
raise notice 'proc1 result is: %, %, %', v_retcode, v_retinfo, v_row_num;
end;
/

KingbaseES OUT 类型参数过程与函数的调用方法的更多相关文章

  1. jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法

    jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法   在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们 ...

  2. 模式识别 - libsvm该函数的调用方法 详细说明

    libsvm该函数的调用方法 详细说明 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26261173 须要载入(load)SVM ...

  3. js中使用function定义类、实例化,函数的调用方法

    function Test002(name, age){ name, age, this.printInfo = function(){ //定义的公有方法 console.log(name, age ...

  4. phpcms 的实用相关接口,函数,调用方法

    常用函数 , 打开include/global.func.php,下面存放一些公共函数view plaincopy to clipboardprint? strip_tags() 调用内容过滤html ...

  5. Phpcms v9系统类库与函数库调用方法

    在分享了n多phpcms的教程后,cmsyou继续分享关于phpcms v9系统类库与函数库的调用方法. 系统类库位于系统的 /libs/functions目录下面,函数库文件名为*.func.php ...

  6. sort函数简单调用方法

    向量调用sort函数排序,一般有三个参数,即为sort(v.begin(),v.end(),cmp),第三个传入的是比较函数的地址(函数名),决定你比较的性质,运用灵活 #include<ios ...

  7. Object Pascal 过程与函数

    过程与函数 过程与函数是实现一定功能的语句块,是程序中的特定功能单元.可以在程序的其他地方被调用,也可以进行递归调用.过程与函数的区别在于过程没有返回值,而函数有返回值. 1.过程与函数的定义 过程与 ...

  8. Excel VBA入门(六)过程和函数

    前面讲过,VBA代码有两种组织形式,一种就是过程(前面的示例中都在使用),另一种就是函数.其实过程和函数有很多相同之处,除了使用的关键字不同之外,还有不同的是: 函数有返回值,过程没有 函数可以在Ex ...

  9. php学习笔记:自定义函数的调用

    PHP内置了超过1000个函数,因此函数使得PHP成为一门非常强大的语言.大多数时候我们使用系统的内置函数就可以满足需求,但是自定义函数通过将一组代码封装起来,使代码进行复用,程序结构与逻辑更加清晰. ...

随机推荐

  1. 重学ES系列之过滤数组

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. RPA应用场景-产品主数据同步

    场景概述 产品主数据同步 所涉系统名称 产品管理系统.SAP系统 人工操作(时间/次) 35分钟 所涉人工数量 3 操作频率 不定时 场景流程1.登录收购品牌产品管理系统 2.根据时间.产品分类等选择 ...

  3. Python: list列表的11个内置方法

    先来逼逼两句: 在实际开发中,经常需要将一组(不只一个)数据存储起来,以便后边的代码使用.在VBA中有使用数组,可以把多个数据存储到一起,通过数组下标可以访问数组中的每个元素.Python 中没有数组 ...

  4. Git Rebase操作

    概括 rebase翻译过来为"变基",可以理解为改变基础,它可以用于分支合并和修改提交记录. 合并分支的区别 我们知道merge操作也可以用于分支合并,但是其和rebase操作有着 ...

  5. cnetOS使用Docker

    设置DHCP vi /etc/sysconfig/network-scripts/ifcfg-ens32 (1)bootproto=dhcp (2)onboot=yes 重启网卡:systemctl ...

  6. VT-x is not available (VERR_VMX_NO_VMX).无法打开虚拟机,无法新建64位虚拟机

    管理员身份打开cmd bcdedit /set hypervisorlaunchtype off 重启生效

  7. 如何优化API?8个实用技巧!【eolink翻译】

    使用 API 可以让公司利用现代连接的力量来帮助他们扩大全球影响力.传输数据和改进集成.由于 API 使企业能够简化流程并增强可用性,所以企业会使用一些优化策略,不断优化流程,比如接下来要说到的8个技 ...

  8. day02 IO

    JAVA IO java io可以让我们用标准的读写操作来完成对不同设备的读写数据工作. java将IO按照方向划分为输入与输出,参照点是我们写的程序. 输入:用来读取数据的,是从外界到程序的方向,用 ...

  9. 简单使用 MySQL 索引

    MySQL 索引 1 什么是索引 在数据库表中,对字段建立索引可以大大提高查询速度.通过善用这些索引,可以令 MySQL 的查询和 运行更加高效. 如果合理的设计且使用索引的 MySQL 是一辆兰博基 ...

  10. Linux(Centos7) 实例搭建 FTP 服务

    本文以 CentOS 7.2 64位系统为例,使用 vsftpd 作为 FTP 服务端,FileZilla 作为客户端.指导您如何在 Linux 云服务器上搭建 FTP 服务. 操作步骤 安装 vsf ...