对于含有 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;
/

最新文章

  1. 7.Java中的字符串
  2. 在eclipse中使用maven创建springMVC项目
  3. ActiveReports 报表应用教程 (1)---Hello ActiveReports
  4. Java 网络编程 字符流的发送与接收 自定义数据边界
  5. 二分PKU3273
  6. css之选择器
  7. Maven 中配置 Urlrewrite 基本配置
  8. POJ 3414--Pots(BFS+回溯路径)
  9. DOS特殊字符转义方法
  10. 《HTTP权威指南》1-HTTP概要
  11. Shell脚本笔记(六)呈现数据
  12. SpringBoot 异常处理
  13. 用 Vue 开发一个简单的答题应用(一)
  14. SpringBoot 配置热部署
  15. Step Detector and Step Counter Sensors on Android
  16. python TCP编程
  17. skill prefix neo,non input 1
  18. asp.net mvc4 小问题
  19. [hdu4667]Building Fence 计算几何 瞎瘠薄搞
  20. 导入数据到HBase的方式选择

热门文章

  1. Java Web servlet 详解
  2. jenkins部署docker
  3. Java:如何打印整个字符串数组?
  4. Educational Codeforces Round 129 (Rated for Div. 2) A-D
  5. 【Nim 游戏】 学习笔记
  6. 构建 API 的7个建议【翻译】
  7. P2183 [国家集训队]【一本通提高组合数学】礼物
  8. NodeJS 基于 Dapr 构建云原生微服务应用,从 0 到 1 快速上手指南
  9. Codeforces Round #796 (Div. 2)(A~E题题解)
  10. IM系统-消息流化一些常见问题