当前位置: 首页 > 面试题库 >

使用Oracle分页

万俟炯
2023-03-14
问题内容

我不像我想的那样熟悉Oracle。我有大约25万条记录,我希望每页显示100条。当前,我有一个存储过程,该过程使用数据适配器和数据集以及对存储过程结果的dataadapter.Fill(dataset)方法将一百万个记录的全部四分之一检索到数据集中。如果我可以将“页码”和“每页记录数”作为整数值,可以将其作为参数传递,那么最好的方法就是只获取该特定部分。假设,如果我将10作为页数传递,将120作为页数传递,则从select语句中获得的数值将是1880至1200,或者类似的数字,我的脑海中可能已经关闭。

我正在用C#在.NET中进行此操作,认为这并不重要,如果我可以在sql端正确使用它,那么我应该很酷。

更新:我能够使用Brian的建议,而且效果很好。我想进行一些优化,但是页面将​​在4到5秒而不是一分钟的时间内显示出来,并且我的分页控件能够很好地集成到我的新存储过程中。


问题答案:

这样的事情应该起作用:来自Frans
Bouma的博客

SELECT * FROM
(
    SELECT a.*, rownum r__
    FROM
    (
        SELECT * FROM ORDERS WHERE CustomerID LIKE 'A%'
        ORDER BY OrderDate DESC, ShippingDate DESC
    ) a
    WHERE rownum < ((pageNumber * pageSize) + 1 )
)
WHERE r__ >= (((pageNumber-1) * pageSize) + 1)


 类似资料:
  • 我试图在我的java程序中实现分页,下面是我试图编写的查询,但使用JPA、Criteria和hibernate无法成功。

  • #不带排序的 SELECT * FROM ( SELECT ROWNUM AS rowno, t.* FROM worker t where ROWNUM <=20) table_alias WHERE table_alias.rowno > 10; #带排序的 SELECT * FROM ( SELECT tt.*, ROWNUM AS rowno FROM ( SELECT t.* FR

  • 问题内容: 我需要在应用程序中使用实体框架,并且在Oracle数据库中使用了表分区。使用简单的JDBC,我可以从特定分区中选择数据。但是我不知道我是否可以使用hibernate或Eclipse链接(JPA)进行相同操作。如果有人知道该怎么做,请告诉我。 通常是JDBC-SQL中的select语句, 如何使用Hibernates或JPA进行同样的操作? 请至少分享一个学习资源的链接。 谢谢!!! 问

  • 本文向大家介绍如何使用log miner分析oracle日志,包括了如何使用log miner分析oracle日志的使用技巧和注意事项,需要的朋友参考一下 当我们不小心误操作致使数据库数据丢失、改变时, 需要对数据库对象做基于时间点的恢复,找到我们需要的数据,这个时间点不能认为精确确定,我们可以通过对oracle日志进行分析,而获得无操作的精确时间点。 oracle db提供了一个分析日志包log

  • 问题内容: 我在Oracle数据库中有一个字符串,我的字符串是:’bbb; aaa; qqq; ccc’ 我用正则表达式来分割我的字符串: 我想按顺序拆分它,我总是希望下面的输出: 因为subString的顺序对我来说非常重要。但是此查询的结果不正确: 问题答案: 您不需要a即可获得结果;此外,要获得给定顺序的结果,您所需要做的只是一个子句:

  • 我在我的C#(. NET 4.0)项目中使用Oracle. ManagedDataAccess Nuget Package Version 12.1.022。该包自动在app.config文件中创建条目。如何从该文件中读取数据源字符串才能连接到数据库? 系统。配置。配置管理器。应用设置。获取(“数据源”); 对我不起作用