博客 Oracle 自定义函数

Oracle 自定义函数

   数栈君   发表于 2023-08-08 10:46  512  0
语法:

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;


返回一个table结果集:

-定义行类型
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


0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料