首页 > 数据库技术 > 详细

oracle存储过程

时间:2015-05-24 23:11:55      阅读:309      评论:0      收藏:0      [点我收藏+]

--存储过程语法
create or replace procedure 名字(
  参数1 in/out 类型(不能给长度),
  参数2 in/out 类型(不能给长度),
  参数3 in/out 类型(不能给长度)
)is
  参数4 类型(可以给长度);
  参数5 类型(可以给长度);
begin
  过程内容
end;

create or replace procedure getempinfo(
  v_num in emp.empno%type
)is
  v_name emp.ename%type;
begin
  select ename into v_name from emp where empno=v_num;
  dbms_output.put_line(‘名字是:‘||v_name);
end;
 
--调用过程
exec getempinfo(7369);--如果没有参数,就不需加小括号

call getempinfo(7369);--如果没有参数,也必须加上小括号

begin
  getempinfo(7369);
end;
 

--系统游标传递多行数据
--查询所有员工的工资
create or replace procedure getempsal(
  empsal out sys_refcursor
)is
begin
  open empsal for select empno,sal from emp;
end;

--调用
declare
  empsal sys_refcursor;
  v_no emp.empno%type;
  v_sal emp.sal%type;
begin
  getempsal(empsal);
  loop
    fetch empsal into v_no,v_sal;
    if empsal%notfound then exit;
    end if;
    dbms_output.put_line(‘员工编号:‘||v_no||‘,员工工资‘||v_sal);
  end loop;
  if empsal%isopen then close empsal;
  end if;
end;

 
 
 

oracle存储过程

原文:http://www.cnblogs.com/noilany/p/4526620.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!