最近项目进度比较缓慢,初步研究了一下Oracle的存储过程,将代码贴出来。
首先先贴出来Oracle的分页分页存储过程代码吧。
1.这是包的代码
create or replace package DB_Oper is
-- Author : LIUBING
-- Created : 2009-10-28 15:01:30
-- Purpose : 测试Oracle的分页存储过程
-- Public type declarations
type ref_DataSet is REF CURSOR;
-- Public function and procedure declarations
function GetCount(mTableName varchar2, mTerm varchar2) return number;
procedure return_DataSet(
mTableName in varchar2, --表名
mTerm in varchar2, --条件
mPageSize in number, --每页显示记录数
mPageIndex in number, --当前页
mOrderField in varchar2, --排序字段
mOrderStyle in number, --排序方式 0 升序 1 降序
mTotalRecords out number, --总记录数
mDateSet out ref_DataSet --记录
);
end DB_Oper;
2.这是包体的代码
create or replace package body DB_Oper is
----- 获取记录数 ------
function GetCount(mTableName varchar2, mTerm varchar2) return number is
i number;
vSql varchar2(1000);
begin
i := 0;
vSql := 'select count(*) from ' || mTableName ;
if length(mTerm) > 0 then
vSql := vSql || ' where ' || mTerm;
end if;
execute IMMEDIATE vSql into i;
return(i);
end;
----- 数据分页 ----------
procedure return_DataSet(
&n