易截截图软件、单文件、免安装、纯绿色、仅160KB

Oracle存储过程分页

转载
from: http://cid-4e5d038451e31a25.spaces.live.com/blog/cns!4E5D038451E31A25!140.entry
create or replace procedure P_QuerySplit(
      sqlscript varchar2,     --表名/SQL语句
      pageSize integer,       --每页记录数
      pageIndex integer,      --当前页
      totalCount out number, --总记录数
      totalPage out number, --总页数
      v_cur out sys_refcursor --返回游标
      ) is
/**
   * by chenjianxin 2008-5-3
   *
   */     
v_PageSize number;
v_PageIndex number;
v_SQL_Count varchar2(4000);
v_SQL varchar2(4000);
v_StartIndex number;
v_EndIndex number;
begin
v_PageSize:=pageSize;
if v_PageSize=0 then
    v_PageSize:=1;
end if;
--统计记录数量
v_SQL_Count := 'select count(*) from ('|| sqlscript ||') a ';
execute immediate v_SQL_Count into totalCount;
--计算总页数
totalPage:=CEIL(totalCount/v_PageSize);
--验证页号 如果页号大余了最大页数,返回最后一页
v_PageIndex:=pageIndex;
if v_PageIndex>totalPage then
    v_PageIndex:=totalPage;
end if;
--计算开始的Index和结束的Index
v_StartIndex:=(v_PageIndex-1)*v_PageSize+1;
v_EndIndex:=v_PageIndex*v_PageSize;
v_SQL:='SELECT /*+ FIRST_ROWS */* from (';
v_SQL:=v_SQL||' SELECT A.*, ROWNUM RN ';
v_SQL:=v_SQL||' from ('||sqlscript||') A ';
v_SQL:=v_SQL||' WHERE ROWNUM <= '||v_EndIndex;
v_SQL:=v_SQL||')WHERE RN >= '||v_StartIndex;
open v_cur for v_SQL;
end P_QuerySplit;
java代码: 
public List listSplit(StringBuffer sbSQL,SplitPageInfo splitPageInfo)throws Exception{
      try {
          java.sql.CallableStatement proc = this.con.prepareCall(
    &n


相关文档:

Oracle初学笔记(1)

 
安装Oracle后,更改Windows计算机名,导致部分Oracle第三方工具,如:PLSQL
Developer无法登陆,并提示ORA-12541:TNS:no listener或ORA-12547:TNS:丢失联系等错误信息的解决方法。
答:从Oracle的错误提示来看,是说TNS:no listener
,估计是某种服务没有启动,打开windows管理工具->服务,一看,有一个Oracle ......

尚学堂oracle笔记

 第一课:客户端
        1. Sql Plus(客户端),命令行直接输入:sqlplus,然后按提示输入用户名,密码。
        2. 从开始程序运行:sqlplus,是图形版的sqlplus.
        3. http://localhost:5560/ ......

Oracle 存储过程中使用cursor 游标遍历数据

 先定义一个cursor:
Procedure  P_MYPROC (
                                    PI_PARAM VARCHAR2
)IS
VI_A&nb ......

Oracle INTERVAL DAY TO SECOND数据类型

INTERVAL DAY TO SECOND数据类型
Oracle语法:
INTERVAL '{ integer | integer time_expr | time_expr }'
{ { DAY | HOUR | MINUTE } [ ( leading_precision ) ]
| SECOND [ ( leading_precision [, fractional_seconds_precision ] ) ] }
[ TO { DAY | HOUR | MINUTE | SECOND [ (fractional_seconds_precision) ] } ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号