15.数据库对象----存储过程(procedure)


    语法:
        create or replace procedure procedure_name
           【(param_name [mode] param_type,.... )】
       is/as
          【param_name param_type [:=value]】
       begin

       end [procedure_name]
     注意:   mode
                in
                     例子:创建 mode 为 in
                               create or replace procedure curr_time
                               is
                               curr char(20);
                               begin
                                   curr:=to_char(sysdate,'yyyy-mm-dd hh24:mi:ss');
                                   dbms_output.put_line(curr);
                               end curr_time;
                out
                     例子:创建 mode 为 out
                               create or replace procedure curr_time(curr_time date,res_time out char)
                               is
                               begin
                                   res_time:=to_char(curr_time,'yyyy-mm-dd hh24:mi:ss');
                              end curr_time;
                in out
    使用:只能在pl/sql中使用
                没有返回数据,即mode都为in
                -----------使用 begin curr_time; end;
                有返回数据,即有一个out/ in out 或者多个
                -----------使用 declare res_time
                                         char(20);
                                        begin
                                             curr_time(sysdate,res_time);
                                             dbms_output.put_line(res_time);
                                        end;
     和函数的区别:
      1.  语法不同
                1.关键字不同:   函数是function, 存储过程是procedure
                2.存储过程没有返回值描述部分,而函数必须有
      2.  返回值方式不同
                存储过程不能够使用return返回数据,只能使用out 或 in out 类型的参数返回数据
                函数必须使用return 返回数据, 如果要返回多个结果则可以使用out/in out 类型数据返回
       3. 用法不同
                存储过程不能用于DML/DQL语句中,只能用于pl/sql中
                函数在DML/DQL/pl/sql中都可以使用
                参数模型为out或 in out 的函数除外, 只能在pl/sql中使用
                     在语句中无法使用mode 为out的参数, 用来赋值或者计算
        4.  函数不能单独使用,必须作为表达式的一部分,存储过程可以单独使用   
                  函数和存储过程不分家,只是使用的地方不同:  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值