oracle存储过程的用法

本文详细介绍了Oracle存储过程的创建及使用方法,包括无参数和带参数的过程定义、基于游标的包实现数据检索等。通过具体示例展示了如何进行数据插入、选择操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;

转载于:https://www.cnblogs.com/wj-wangjun/archive/2008/04/10/1147521.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值