存储过程

存储过程

也称为过程

存储过程定义:

语法:

         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;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值