好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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; 
/  

查看更多关于Oracle PL / SQL 存储过程的详细内容...

  阅读:19次

上一篇

下一篇

第1节:Oracle PL / SQL CASE 语句    第2节:Oracle PL / SQL CHAR VARCHAR2    第3节:Oracle PL / SQL INTERVAL数据类型    第4节:Oracle PL / SQL loop循环    第5节:Oracle PL / SQL for loop循环    第6节:Oracle PL / SQL goto 语句    第7节:Oracle PL / SQL update更新数据    第8节:Oracle PL / SQL包    第9节:Oracle PL / SQL 存储过程    第10节:Oracle PL / SQL 函数    第11节:Oracle PL / SQL变量    第12节:Oracle PL / SQL变量范围    第13节:Oracle PL / SQL TIMESTAMP数据类型    第14节:Oracle PL / SQL 聚合函数大全    第15节:Oracle PL/SQL Views 视图    第16节:Oracle PL / SQL 表 table    第17节:Oracle PL/SQL Delete删除数据    第18节:Oracle PL/SQL Select 查询    第19节:Oracle PL/SQL 教程    第20节:Oracle PL / SQL注释    第21节:Oracle PL / SQL触发器Triggers    第22节:Oracle PL / SQL变量值    第23节:Oracle PL / SQL块结构    第24节:Oracle PL / SQL关联数组    第25节:Oracle PL / SQL文字    第26节:Oracle PL / SQL参数    第27节:Oracle PL / SQL运算符    第28节:Oracle PL/SQL NUMBER    第29节:Oracle PL/SQL if 语句    第30节:Oracle PL/SQL while循环    第31节:Oracle PL / SQL约束    第32节:Oracle PL / SQL 插入insert    第33节:Oracle PL / SQL数据类型    第34节:PL / SQL 分析函数大全