Oracle 存储过程

一、存储过程定义:

语法 :

         Create  [or replace]   procedure proc_name

    [(para_name [in | out | in out]  type 

para_name [in | out | in out]  type 

[,…..])]

    is  |  as

      声明部分

变量 1 INTEGER :=0;
变量 2 DATE;

BEGIN

            执行部分 ;

    EXCEPTION

            异常处理部分

end  proc_name;

说明

u        每个参数写法:参数名,属性,类型

u        Create  [or replace] 》》》》如果存在就替换, 不存在就创建。

u        命名规范: pro_myname

例子:

create or replace procedure pro_emp (v_no in emp.empno%type ,v_name out emp.ename%type ,v_sal out emp.sal%type )
is
e_sal_error exception ;

begin
   select ename,sal into v_name,v_sal from emp
   where empno=v_no;
  
   if v_sal>
2500 then
      dbms_output.put_line(
'soijdiofj' ||v_sal);
      raise e_sal_error;
   end if ;
 
exception
    when no_data_found then
        dbms_output.put_line(
'no_data_found >>>' ||v_no);  
     when e_sal_error then
       dbms_output.put_line(
'e_sal_error>>>>>' );
      
end pro_emp;

 

二、执行存储过程

-- pl/sql

declare

v_a1 emp.ename%type;

v_a2 emp.sal%type;

begin

    

--这里采取名称表示法(区别于位置表示法)

query_emp(v_no=>5678,v_name=>v_a1,v_sal=>v_a2);

end;

 

declare
v_name emp.ename%type ;
v_sal emp.job%type ;
v_no emp.empno%type ;
begin
 
--22222  pro_emp(7698,v_name,v_sal);
  ---33333 pro_emp(v_no=>
7698 ,v_sal=>v_sal,v_name=>v_name);
 
  dbms_output.put_line(
'Ãû×Ö£º' ||v_name); 
end ;

说明:省略符号“ => , 那么参数顺序和定义一致,不省略的话,可以随便一个顺序。

 

三、查看

Select text from user_source where name='QUERY_EMP';

select text from user_source where name='PRO_EMP';

注意:存储过程名称要大写

 

四、删除

-- 删除存储过程

Drop procedure query_emp;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值