Oracle中的存储过程

来源:互联网 发布:淘宝海报设计教程 编辑:程序博客网 时间:2024/05/18 17:23

create or replace procedure proc1(
  p_para1 varchar2,
  p_para2 out varchar2,
  p_para3 in out varchar2
)as
 v_name varchar2(20);
begin
  v_name := '张三丰';
  p_para3 := v_name;
  dbms_output.put_line('p_para3:'||p_para3);
end;

上面就是一个最简单的存储过程。一个存储过程大体分为这么几个部分: 
1.

创建语句:create or replace procedure 存储过程名 
2.

如果没有or replace语句,则仅仅是新建一个存储过程。如果系统存在该存储过程,则会报错。Create or replace procedure 如果系统中没有此存储过程就新建一个,如果系统中有此存储过程则把原来删除掉,重新创建一个存储过程。 
3.

存储过程名定义:包括存储过程名和参数列表。参数名和参数类型。参数名不能重复, 参数传递方式:IN, OUT, IN OUT 
IN 表示输入参数,按值传递方式。如果存储过程的参数没有指定参数传递类型,默认为IN  
OUT 表示输出参数,可以理解为按引用传递方式。可以作为存储过程的输出结果,供外部调用者使用。 
IN OUT 即可作输入参数,也可作输出参数。 
参数的数据类型只需要指明类型名即可,不需要指定宽度。 
参数的宽度由外部调用者决定。 
4.

过程可以有参数,也可以没有参数 
5.

变量声明块:紧跟着的as (is )关键字,可以理解为pl/sql的declare关键字,用于声明变量。 
6.

变量声明块用于声明该存储过程需要用到的变量,它的作用域为该存储过程。另外这里声明的变量必须指定宽度。遵循PL/SQL的变量声明规范。 
7.

过程语句块:从begin 关键字开始为过程的语句块。存储过程的具体逻辑在这里来实现。 
8.

异常处理块:关键字为exception ,为处理语句产生的异常。该部分为可选 
9.

结束块:由end关键字结果。


转载自:http://blog.csdn.net/leshjmail/article/details/6551735


0 0