Oracle中过程和函数

过程和函数

过程

--创建一个过程

create  or   replace   procedure   AddNewCountry(

        --%type意思指这里的字段和表里面对应的字段类型一致

        c_Id   countries.country_id%type,

        v_Name   countries.country_name%type,

        v_Remark   countries.country_remark%type)   as

begin

        --countries表中插入新记录

        insert   into   countries(country_id,country_name,country_remark)

        values

        (c_Id,v_Name,v_Remark);

end   AddNewCountry;

 

--使用创建的过程

begin

  AddNewCountry('123','China','世界第一大国中国');

end;

 

--创建过程的另外一个写法

create   or   replace   procedure   AddNewCountry

as

begin

        --countries表中插入新记录

        insert   into   countries(country_id,country_name,country_remark)

        values

        (c_Id,v_Name,v_Remark);

dbms_output.put_line('The   Record   Has  Insert!');

end   AddNewCountry;

create   or   replace   procedure   GetDate

as

begin

  DBMS_OUTPUT.put_line('The   Date  is:'||TO_CHAR(SYSDATE,'DD-MM-YYYY'));

END   GetDate;

 

--使用该过程

begin

  AddNewCountry;

  GetDate;

end;

函数

声明传参函数

--创建一个函数

create   or   replace   function   countryNumber(

         n_maxNumber   NUMBER,

         n_minNumber   NUMBER)

         RETURN   varchar2   IS

         n_Result   NUMBER(5);

         v_ReturnValue   varchar2(50);

begin

  --country表中选择记录的数量

  select   count (*) into   n_Result   from   country;

  if   n_Result > n_maxNumber   then

       v_ReturnValue:='The   Number   Too   Big!';

  elsif   n_Result < n_minNumber   then

       v_ReturnValue:='The   Number   Too   Little';

  else

       v_ReturnValue:='Maybe   right!';

  end   if;

return   v_ReturnValue;

end   countryNumber;

 

--执行上面的函数

declare

v_maxNumber   Number:=10000;

v_minNumber   Number:=10;

v_Result   varchar2(50);

begin

  v_Result:=countryNumber(v_maxNumber,v_minNumber);

  DBMS_OUTPUT.put_line(v_Result);

end;

 

带默认值函数

--创建一个函数

create   or   replace   function   countryNumber(

         n_maxNumber   NUMBER   default   1000,

         n_minNumber   NUMBER   default   10)

         RETURN   varchar2   IS

         n_Result   NUMBER(5);

         v_ReturnValue   varchar2(50);

begin

  --country表中选择记录的数量

  select   count (*) into   n_Result   from   country;

  if   n_Result > n_maxNumber   then

       v_ReturnValue:='The   Number   Too   Big!';

  elsif   n_Result < n_minNumber   then

       v_ReturnValue:='The   Number   Too   Little';

  else

       v_ReturnValue:='Maybe   right!';

  end   if;

return   v_ReturnValue;

end   countryNumber;

 

--执行上面的函数

declare

v_Result   varchar2(50);

begin

  v_Result:=countryNumber(v_maxNumber,v_minNumber);

  DBMS_OUTPUT.put_line(v_Result);

end;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值