存储过程示例

存储过程示例:

例1:创建不带参数的存储过程
输出系统日期
create or replace procedure output_date is
begin
dbms_output.put_line(sysdate);
end output_date;

例2 带参数in和out的存储过程
create or replace procedure get_username(v_id in number, v_username out varchar2)
as
begin
select username into v_username from tab_user where id=v_id; --变量赋值
exception
when no_data_found then
raise_application_error(-2001,'ID不存在!');
end get_username;

 

例3:一个高效的数据分页的存储过程、
create procedure pageTest
(
@FirstId nvarchar(20)=null, --当前页面里的第一条记录的排序字段的值
@LastID nvarchar(20)=null, --当前页面里的最后一条记录的排序字段的值
@isNext bit=null, --true 1: 下一页; false 0:上一页;
@allCount int output, --返回总记录书
@pageSize int output, --返回一夜的记录数
@CurPage int --也好(第几页) 0:第一页;-1最后一页
)
AS
if @CurPage = 0 --第一页;
begin --统计总记录数
select @allCount=count(ProductId) from Product_test

set @pageSize = 10
--返回第一页的数据
select top 10
ProductId,
ProductName,
Introduction
from Product_test order by ProductId
end

else if @CurPage=-1 --表示最后一页

select * from
(select top 10 ProductId,
ProductName, Introduction

from Product_test order by ProductId desc ) as aa
order by ProductId
else

begin
if @isNext=1
--翻到下一页
select top 10 ProductId,
ProductName,
Intorduction
from Product_test where ProductId > @LastID order by ProductId
else
--翻到上一页
select * from
(select top 10 ProductId,
ProductName,
Introduction
from Product_test where ProductId<@FirstId order by ProductId desc)
as ProductId
end
)

转载于:https://www.cnblogs.com/xunyi/p/8932808.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值