KingbaseES OUT 类型参数过程与函数的调用方法
2024-09-07 22:10:41
对于含有 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;
/
最新文章
- 7.Java中的字符串
- 在eclipse中使用maven创建springMVC项目
- ActiveReports 报表应用教程 (1)---Hello ActiveReports
- Java 网络编程 字符流的发送与接收 自定义数据边界
- 二分PKU3273
- css之选择器
- Maven 中配置 Urlrewrite 基本配置
- POJ 3414--Pots(BFS+回溯路径)
- DOS特殊字符转义方法
- 《HTTP权威指南》1-HTTP概要
- Shell脚本笔记(六)呈现数据
- SpringBoot 异常处理
- 用 Vue 开发一个简单的答题应用(一)
- SpringBoot 配置热部署
- Step Detector and Step Counter Sensors on Android
- python TCP编程
- skill prefix neo,non input 1
- asp.net mvc4 小问题
- [hdu4667]Building Fence 计算几何 瞎瘠薄搞
- 导入数据到HBase的方式选择
热门文章
- Java Web servlet 详解
- jenkins部署docker
- Java:如何打印整个字符串数组?
- Educational Codeforces Round 129 (Rated for Div. 2) A-D
- 【Nim 游戏】 学习笔记
- 构建 API 的7个建议【翻译】
- P2183 [国家集训队]【一本通提高组合数学】礼物
- NodeJS 基于 Dapr 构建云原生微服务应用,从 0 到 1 快速上手指南
- Codeforces Round #796 (Div. 2)(A~E题题解)
- IM系统-消息流化一些常见问题