oracle印象之自定义函数

    函数一般用于计算和返回一个值,可以将经常需要进行的计算写成一个函数。
    函数与存储过程的区别:
     1)函数的调用是表达式的一部分,而过程的调用是一条PL/SQL语句。
     2)函数和存储过程一样也是编译后放在内存供用户使用,只不过调用时函数需要表达式。而调用存储过程只需要存储过程的名称。
     3)函数必须要有一个返回值,而过程则没有。
     函数的语法和过程有些类似,它的语法为:  
	 create [or replace] function  函数名
	 (参数1 in | out | in out 参数类型,参数2 in | out | in out 参数类型 ,......)
	 return 返回类型
	 as|is
	 begin
	   函数体;
	   return 返回值;
	 end 函数名;
     其中,函数的参数有3种:
      in:只能用来传值,不能用来赋值;
      out:只能用来赋值,不能传值;
      in out :既能传值,又能赋值;
     在函数中通常只有in类型的参数。
     函数例子:
   create or replace function stuFun
   (sex in varchar)
   return varchar
    as
       stucount number;
      begin
         if sex='男' then
            select count(*) into stucount from student where stu_gender ='男';
         else 
           select count(*) into stucount from student where stu_gender ='女';
           end if;
         return (stucount);
      end stuFun;

     函数的调用:
       函数的调用有好几种方式
       1)采用select的方式
          如:
    select stuFun('男') from dual;
        2)方式二
	declare 
	  sex varchar2(20);
        begin
	   sex :=stuFun('男');
        end;
         3)下面需要在sql/plus环境运行才行
      var sex VARCHAR(20)
      execute sex:= stuFun('男');
        删除函数
         语法:
      drop function 函数名         
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值