数据库自定义函数和存储过程写法

存储过程和用户定义函数都是“SQL语句组成的子程序,用以封装代码以便重复使用”。但区别也是显而易见的。简单说,存储过程功能强大,但调用不便,用户函数正相反。

 

自定义函数

数据库中函数包含四个部分:声明、返回值、函数体和异常处理。

 

无参数的函数

Create  or replace function user_list //声明函数

Return varchar2

Is v_user varchar2(50);//定义返回值

Begin//函数体

Select username into v_user from user_users

Return v_usr; 

End get_user;

测试:

Select get_user from dual;

 

 

 

in参数的函数

Create or replace funtion getuser(v_id in number)

Return varchar2

As v_name varchar(50);

Begin(into 是赋值给v_name

Select name into v_name from employerr where id=_v_id;

Return v_name;

Exception //异常抛出

When no data found then

Raise application error(-20001,’输入的ID无效’);

End get_user;

 

存储过程

存储过程(Stored Procedure),就是一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过编译后存储在数据库系统中。在使用时候,用户通过指定已经定义的存储过程名字并给出相应的存储过程参数来调用并执行它,从而完成一个或一系列的数据库操作。

Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常

create or replace procedure runbyparmeters   

    (isal in emp.sal%type,  

     sname out varchar, 

     sjob in out varchar) 

 as  

    icount number; 

 begin 

      select count(*) into icount from emp where sal>isal and job=sjob; 

      if icount=1 then 

        .... 

      else 

     end if; 

exception 

     when too_many_rows then 

     DBMS_OUTPUT.PUT_LINE('返回值多于1行'); 

     when others then 

     DBMS_OUTPUT.PUT_LINE('在RUNBYPARMETERS过程中出错!'); 

end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值