oracle存储过程的用法

oracle存储过程的用法 精典

create table stuInfo
(
stuID int primary key,
stuName varchar2(20)
)


create or replace procedure proc1
is
begin
  insert into stuInfo values(1,'liheng');
end;



create or replace procedure proc2
(
  v_ID int,
  v_Name varchar2
)
is
begin
  insert into stuInfo values(v_ID,v_Name);
  commit;---------记得要提交
end;


create or replace procedure proc3
(
v_ID int,
v_Name out varchar2
)
is
varName stuInfo.Stuname%type;
begin
 select stuName into varName from stuInfo where stuID=v_ID;
 v_Name:=varName;
end;


=====================返回全部记录=======================================

create or replace package PKG_STUINFO is
  type stuInfoCursorType is ref cursor;
  procedure getStuInfo (stuInfoCursor out stuInfoCursorType);
end;



create or replace package body PKG_STUINFO is
  procedure getStuInfo (stuInfoCursor out stuInfoCursorType)
  is
  var_cursor stuInfoCursorType;
  begin
     open var_cursor for select * from stuInfo;
     stuInfoCursor:=var_cursor;
  end;
end;

=====================根据编号返回记录==============================

create or replace package PKG_STUINFO is
  type stuInfoCursorType is ref cursor;
  procedure getStuInfo (v_ID int,stuInfoCursor out stuInfoCursorType);
end;


create or replace package body PKG_STUINFO is
  procedure getStuInfo (v_ID int,stuInfoCursor out stuInfoCursorType)
  is
  var_cursor stuInfoCursorType;
  begin
     if v_ID=0 then
        open var_cursor for select * from stuInfo;
     else
        open var_cursor for select * from stuInfo where stuID=v_ID;
     end if;
     stuInfoCursor:=var_cursor;
  end;
end;

=========================根据姓名返回记录===========================

create or replace package PKG_STUINFO is
  type stuInfoCursorType is ref cursor;
  procedure getStuInfo (v_Name varchar2,stuInfoCursor out stuInfoCursorType);
end;


create or replace package body PKG_STUINFO is
  procedure getStuInfo (v_Name varchar2,stuInfoCursor out stuInfoCursorType)
  is
  var_cursor stuInfoCursorType;
  begin
    if v_Name =' ' then
      open var_cursor for select * from stuInfo;
    else
      open var_cursor for select * from stuInfo where stuName like '%'||v_Name||'%';
    end if;
    stuInfoCursor:=var_cursor;
  end;
end;

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值