oracle 存储过程实现分页
用oracle数据库的存储过程实现返回结果集并实现分页的功能。
用户传入参数
一下是转别人的代码
--包声明
create or replace package p_page is
-- Author : PHARAOHS
-- Created : 2006-4-30 14:14:14
-- Purpose : 分页过程
TYPE type_cur IS REF CURSOR; --定义游标变量用于返回记录集
PROCEDURE Pagination(
Pindex in number, --分页索引
Psize in number, --页面大小
Pcount out number, --返回分页总数
v_cur out type_cur --返回当前页数据记录
);
procedure PageRecordsCount(
Prcount out number --返回记录总数
);
end p_page;
--包体
create or replace package body p_page is
PROCEDURE Pagination(
Pindex in number,
Psize in number,
Pcount out number,
v_cur out type_cur
)
AS
Psql VARCHAR2(1000);
v_sql VARCHAR2(1000); --
v_count number;
v_Plow number;
v_Phei number;
Begin
Psql := 'select rownum rn,t.* from TABLE_NAME t' ; --选择数据的语句要求必须包含rownum字段
------------------------------------------------------------取分页总数
v_sql := 'select count(*) from (' || Psql || ')';
execute immediate v_sql into v_count;
Pcount := ceil(v_count/Psize);
------------------------------------------------------------显示任意页内容
v_Phei := Pindex * Psize + Psize;
&nb
相关文档:
脚本1:
SELECT NAME
,value
,description
from ( --GV$SYSTEM_PARAMETER
SELECT x.inst_id as instance
,x.indx+1
,ksppinm as NAME
,ksppity
,ksppstvl as value
,ksppstdf as isdefault& ......
distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用 它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的。
下面先来看看例子:
table表
字段1 字段2
&nbs ......
--设置密码法过期
alter profile default limit PASSWORD_LIFE_TIME unlimited;
alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;
--取消审计
alter system set audit_trail='FALSE' scope=spfile;
--定义连接数据库的最大进程数
alter system set processes=1024 scope=spfile;
--关闭垃圾回收站
al ......
Oracle Purchasing不能查看PO或開PO,並且用戶有權限開PO。這樣情況可能有不少同仁也遇上類似問題。具體情況如下圖:
首先,查看用 ......
本实例已完全通过测试,单向,双向同步都可使用.
--名词说明:源——被同步的数据库
目的——要同步到的数据库
前6步必须执行,第6以后是一些辅助信息.
--1、在目的数据库上,创建dblink
drop public database link dblink ......