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. /*+ALL_ROWS*/
表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.
例如:
SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT';
2. /*+FIRST_ROWS*/
表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.
例如 ......
Oracle实现自增主键
oracle没有ORACLE自增字段这样的功能,但是通过触发器(trigger)和序列(sequence)可以实现。
create table t_client (id number(4) primary key,
pid number(4) not null,
name varchar2(30) not null,
client_id varchar2(10),
client_level char(3),
bank_acct_no varchar2(30),
contact_tel&n ......
connect by 是结构化查询中用到的,其基本语法是:
select ... from tablename start with 条件1
connect by 条件2
where 条件3;
例:
select * from table
start with org_id = 'HBHqfWGWPy'
connect by prior org_id = parent_id;
简单说来是将一个树状结构存储在一张表里,比如一个表中存在两个字段:
......
oracle体系结构深入学习Buffer Cache - Overview
oracle 2009-09-02 23:13:26 阅读40 评论0 字号:大中小
涛涛深入学习oracle体系结构
我发觉,英文的一些技术文章在描述oracle原理非常的恰当到位,表达的非常的美,呵呵。英文不好,献丑翻译并学习了,认真看了,相信你受益匪浅。
oracle体系结构之:Buffer Cache - O ......