Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > Oracle分页的一个问题
【标  题】:Oracle分页的一个问题
【关键字】:Oracle
【来  源】:http://www.blogjava.net/alex/archive/2006/09/20/70817.html

Oracle分页的一个问题

Your Ad Here key words :Oracle分页 视图

google了一下关于Oracle的分页方法,方法还不少,大多数效果差不多-有点恶心. 恶心也要作,不过后来就是大家都用得这种方式在我这里出现了新问题,奇怪的是怎么没有别人碰到?

String condition?=?"?teacher_id?=?"?+?userId?+?"?and?school_id="+siteId;
sql?
=
???
"?select * "?+
???
"?from your_table where?"?+?condition?+
???
"?and?rowid?not?in?(?select?rowid?from your_table where"?+?condition?+
???
"?and?rownum?<=?"?+?(pageIndex?-?1)?*?Constants.PAGE_NUMS +?")?"?+
???
"?and?rownum?<=?"?+?Constants.PAGE_NUMS ;

现在的问题是我需要按照table的某个字段排序,于是改成如下:
String?condition?=?"?teacher_id?=?"?+?userId?+?"?and?school_id="+siteId;
sql?
=
????
"?select?*?"?+
????
"?from?your_table?where?"?+?condition?+
????
"?and?rowid?not?in?(?select?rowid?from?your_table?where"?+?condition?+
????
"?and?rownum?<=?"?+?(pageIndex?-?1)?*?Constants.PAGE_NUMS?+?"order by id desc)?"?+
????
"?and?rownum?<=?"?+?Constants.PAGE_NUMS + " order by id desc";

这个sql有问题么?
答案是可能有问题,也可能没有问题,因为据说在8i的Oracle版本之前都不行,实际上也不尽然,在我的9i和10g我得到的是同样的错误 "missing right parenthesis",还有一位兄弟估计是DBA建议我去metalink打一个patch,埃,动作太大了,不敢动。

问题还是要解决,试了下类似于select a.*,rownum r from (select * from table where ...) a where rownum < 10 等的方法,效果一样,就是不能加嵌套的order by
最后,用视图的方法间接解决问题,因为我要解决的问题实际就是按某个字段排序,那么在视图里先对table进行排序,再在视图的基础上作操作就OK了.

另,还有一种不错的实现方法,即用OracleCachedRowSet,分页也比较简单,有点类似于hibernate,由于时间关系没有时间去看,感兴趣的朋友可以看一下.

从公司的Validation机制开始认识Struts的Validation:【上一篇】
Portal的三大作用:【下一篇】
【相关文章】
  • oracle 10g 学习手册(4)SQL函数的运用与解析(一)字符函数和数字函数
  • Known schemas in Oracle
  • Oracle企业管理器(Enterprise Manager)完全参考
  • Oracle实例的进程结构
  • Oracle数据库与实例的理解 KING
  • Oracle实例的内存结构 yorking
  • 免费学习oracle数据库管理
  • ORACLE性能优化--调整共享池
  • ORACLE存储过程加密方法
  • SQL与ORACLE常用函数比较
  • 【随机文章】
  • 深入浅出C++之private/public/protected
  • 通过HTML网页检测网站是否能够访问,如果不能访问则报警。
  • Web环境下MS SQL Server中数据的磁带备份与恢复
  • labview build dll
  • 关于apache2.0(prefork)里增加"MaxClient"的声明
  • C# 2.0 —— 新特性实践之 Generic (1)
  • 从新鲜人到新仙人
  • TCP/IP 协议
  • native2ascii应用小技巧
  • Linux下PHP脚本执行结果不显示问题
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.