语法:
Create [or replace] function funtionName(parameter1 mode1 dataType1,parameter2 mode2 dataType2,….)
Return returnDataType Is/as
--定义使用变量、返回变量
Begin
Function_body
Return expression
End functionName;--结束函数的声明,也可以直接写end不加函数名。
--其中mode1、mode2表示参数类型(in/out),dataType表示参数的数据类型,returnDataType表示返回值类型。
一个简单的列子,根据输入的数字,返回两个数的和:
create or replace function testAdd(js1 in number, js2 in number)
return number is
v_hj number;
begin
v_hj := js1 + js2;
return v_hj;
end;
-定义行类型
create or replace type v_record as object
(
id varchar2(32),
username varchar2(50),
name varchar2(50)
)
--以行类型定义一个表类型
create or replace type v_table is table of v_record
--函数
create or replace function getUser(username in varchar2)
return v_table is
v_row v_record; --定义单条数据变量
rs v_table:=v_table(); --定义返回结果并初始化
begin
for thisrow in(select t.id_,t.username_,t.name_ from t_sys_user t where t.username_ in ('wangying','liushaojun'))
loop
v_row := v_record(thisrow.id_,thisrow.username_,thisrow.name_);
rs.extend;
rs(rs.count):=v_row;
end loop;
return(rs);
end;
select testAdd(2,3) from dual;
select * from table(getUser('wangxiyun'));
免责申明:
本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!
《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu
《数栈V6.0产品白皮书》下载地址:https://fs80.cn/cw0iw1
想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=bbs
同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:https://github.com/DTStack