存储过程的使用

--无参数存储过程
create proc proUserInfo
as
select * from T_UserInfo
go
exec proUserInfo   --执行存储过程

--创建带输入参数的存储过程
create proc proUserInfo1
@name varchar(20)
as
select * from T_UserInfo where
Name=@name
go

exec proUserInfo1 '李哲'

--创建带2个输入参数的存数过程
create proc proUserInfo2
@name varchar(20),
@age int
as
select * from T_UserInfo where
Name=@name or Age=@age
go

exec proUserInfo2 '李哲',18

--创建带输入参数和输出参数的存储过程
create proc proUserInfo3
@name varchar(20),
@age int output
as
select @age=age from T_UserInfo where
Name=@name
go

begin
declare @age int,
exec proUserInfo3
end

--分页
select * from (select ROW_NUMBER() over(order by UserId) as rownum, * from T_UserInfo) t where rownum>3 and rownum<=6

--存储过程分页
create proc profenye
@pagesize int,
@pageindex int
as
select * from (select ROW_NUMBER() over(order by UserId) as rownum, * from T_UserInfo) t where
 rownum>(@pageindex-1)*@pagesize
 and rownum<
=@pageindex*@pagesize
 go
 
 --调用存储过程分页
exec profenye 4,1

--创建索引
create index index_userinfo

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Oracle存储过程可以使用List来传递多个值作为参数,下面是一个使用List作为参数的存储过程的示例: ```sql CREATE OR REPLACE PROCEDURE get_employee_details( p_employee_ids IN VARCHAR2, p_employee_names OUT SYS_REFCURSOR ) IS BEGIN OPEN p_employee_names FOR SELECT employee_id, employee_name, salary FROM employees WHERE employee_id IN ( SELECT regexp_substr(p_employee_ids, '[^,]+', 1, LEVEL) AS employee_id FROM dual CONNECT BY LEVEL <= LENGTH(p_employee_ids) - LENGTH(REPLACE(p_employee_ids, ',', '')) + 1 ); END; ``` 在上面的示例中,存储过程`get_employee_details`定义了一个输入参数`p_employee_ids`和一个输出参数`p_employee_names`。输入参数`p_employee_ids`是一个逗号分隔的员工ID列表,输出参数`p_employee_names`是一个游标,用于返回查询结果。 存储过程的功能是根据输入的员工ID列表查询员工的姓名和薪水,并将结果存储在输出参数中。为了实现这个功能,存储过程使用了正则表达式来解析输入的员工ID列表,并使用游标将查询结果返回。 你可以像下面这样调用这个存储过程: ```sql DECLARE v_employee_ids VARCHAR2(100) := '1001,1002,1003'; v_employee_names SYS_REFCURSOR; BEGIN get_employee_details(v_employee_ids, v_employee_names); -- 处理游标返回的数据 END; ``` 在上面的示例中,我们定义了一个逗号分隔的员工ID列表`v_employee_ids`,并将它作为输入参数传递给存储过程`get_employee_details`。存储过程将查询结果存储在输出参数`v_employee_names`中,我们可以通过游标来访问这些数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值