Oracle PL / SQL 存储过程

PL / SQL存储过程不返回值。他们执行他们的指示并返回。您不能在赋值语句(如函数)的右侧使用存储过程。

创建存储过程

以下代码是一个非常简单的存储过程示例。

它基于SYS.DBMS_LOCK包的程序sleep(数量)。

此存储过程将停止执行指定的秒数。

CREATE OR REPLACE PROCEDURE wait( ain_seconds IN number) is 
begin --  w ww .j  a  va2  s .co m
    SYS.DBMS_LOCK.sleep(ain_seconds); 
end wait; 
/ 

declare 
    v_max_line varchar2(32767); 
begin 

    wait(2);
end; 
/ 

注意

创建存储过程的语法如下:


CREATE [OR REPLACE] PROCEDURE <procedure_name> [( 
<parameter_name_1> [IN] [OUT] <parameter_data_type_1>, 
<parameter_name_2> [IN] [OUT] <parameter_data_type_2>,... 
<parameter_name_N> [IN] [OUT] <parameter_data_type_N> )] IS
     --the declaration section --  w ww .j  a  va2s  .c  o  m
BEGIN
     -- the executable section 
EXCEPTION
     -- the exception-handling section 
END; 
/ 

<procedure_name>是PROCEDURE的名称; <parameter_name>是要传递的参数的名称IN,OUT或IN,OUT <parameter_data_type>是相应参数的PL / SQL数据类型。

注意2

关键字OR REPLACE周围的括号表示它们是可选的。

参数的括号表示它们是可选的。

PROCEDURE的块结构与匿名块相同,除了CREATE PROCEDURE关键字和可选参数。

存储过程不同于函数,因为它没有RETURN参数。

实例2

以下代码为SYS.DBMS_OUTPUT.put_line()创建一个warpper。

create or replace PROCEDURE pl( aiv_text in varchar2 ) is 
begin --  www  . jav a2 s  . c o m
    SYS.DBMS_OUTPUT.put_line(aiv_text); 
end pl; 
/ 

declare 
    v_max_line varchar2(32767); 
begin 
    for i in 1..10 loop 
        v_max_line := v_max_line || ' a'; 
    end loop; 
    pl('Test a line of text.'); 
    pl(to_date('20200101', 'YYYYMMDD')); 

end; 
/ 

 CSDN:程序猿 寄语:
1、作为一个真正的程序员,首先应该尊重编程,热爱你所写下的程序,他是你的伙伴,而不是工具。
2、程序员可以让步,却不可以退缩,可以羞涩,却不可以软弱,总之,程序员必须是勇敢的。
3、编程是一种单调的生活,因此程序员比普通人需要更多的关怀,更多的友情。
4、程序不是年轻的专利,但是,他属于年轻。
5、没有情调,不懂浪漫,也许这是程序员的一面,但拥有朴实无华的爱是他们的另一面。
6、一个好汉三个帮,程序员同样如此。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值