我正在使用Oracle 10g和以下范例来获取15个结果的页面(因此当用户查看搜索结果的第2页时,他们会看到记录16-30).
select *
from
( select rownum rnum, a.*
from (my_query) a
where rownum <= 30 )
where rnum > 15;
Run Code Online (Sandbox Code Playgroud)
现在我必须运行一个单独的SQL语句来对"my_query"执行"select count"以获取my_query的结果总数(这样我就可以向用户显示它并使用它来弄清楚总页数等).
有没有办法获得结果的总数而不通过第二个查询,即从上面的查询中获取它?我已经尝试添加"max(rownum)",但它似乎不起作用(我得到一个错误[ORA-01747]似乎表明它不喜欢我在组中有关键字rownum).
我希望从原始查询中获取此信息而不是在单独的SQL语句中执行此操作的理由是"my_query"是一个昂贵的查询,所以我宁愿不运行它两次(一次得到计数,一次得到数据页面)如果我不需要; 但是,如果可能的话,我可以在单个查询中获得结果数量(同时获取我需要的数据页面)的任何解决方案都不应该增加很多额外的开销.请指教.
这正是我正在尝试做的事情,因为我认为它不喜欢我在组中使用ROWNUM,因此我收到了ORA-01747错误.注意,如果有另一种解决方案不使用max(ROWNUM),而是使用其他方法,那也完全没问题.这个解决方案是我第一次想到什么可行.
SELECT * FROM (SELECT r.*, ROWNUM RNUM, max(ROWNUM)
FROM (SELECT t0.ABC_SEQ_ID AS c0, t0.FIRST_NAME, t0.LAST_NAME, t1.SCORE
FROM ABC t0, XYZ t1
WHERE (t0.XYZ_ID = 751) AND
t0.XYZ_ID = t1.XYZ_ID
ORDER BY t0.RANK ASC) r WHERE ROWNUM <= 30 GROUP BY r.*, ROWNUM) WHERE RNUM > 15
Run Code Online (Sandbox Code Playgroud)
---------编辑--------注意,基于第一个评论,我尝试了以下似乎工作.我不知道它与其他解决方案相比表现如何(我正在寻找满足我的要求但表现最佳的解决方案).例如,当我运行它需要16秒.当我取出COUNT(*)OVER()RESULT_COUNT时,只需7秒钟:
SELECT * FROM (SELECT r.*, …Run Code Online (Sandbox Code Playgroud) 我可以使用Pip从Artifactory中提取Python工件吗?
我看到我可以使用Python在Artifactory中放置工件,但是如果我想使用pip从中提取工件呢?
我计划配置weblogic的gzip servlet过滤器(使用weblogicx-gzip.jar)来gzip我的网页.
如何验证页面是否被发送到客户端gzip压缩?
我想返回一个传入的Class对象的相同类型对象的实例.传入的类型可以是ANYTHING.有没有办法用Generics做到这一点?
澄清 - 我不希望方法的调用者不必转换为他们传入的对象的类
例如,
public Object<Class> getObject(Class class)
{
// Construct an instance of an object of type Class
return object;
}
// I want this:
MyClass myObj = getObject(MyClass.class);
// Not this (casting):
MyClass myObj = (MyClass)getObject(MyClass.class);
Run Code Online (Sandbox Code Playgroud) 我有一个中央回购和当地回购.repo具有"默认"分支和一个名为branch"mybranch"的分支.如果我在命名分支中工作并希望偶尔将我的更改合并为默认值,然后继续在命名分支中工作,我应该这样做:
hg merge default"以合并默认的INTO mybranchhg update default"和" hg merge mybranch"合并mybranch INTO默认值与上面相同,但用#4切换#2?(这样我首先合并mybranch INTO默认值?
我已经设置了web.xml,以便任何java.lang.Throwable(即任何未捕获的异常或错误)将转发到错误页面.但是,对于AJAXified组件,异常不会通过此机制路由到错误页面.
我所拥有的测试用例是一个简单CommandButton的操作方法,它总是抛出一个RuntimeException.看起来最好的做法是让action方法捕获异常并添加FacesMessage类型错误严重性.这是人们做的吗?有没有办法配置JSF,以便如果AJAXified组件的支持bean方法抛出异常,可以显示错误页面?
JSF 2.0 View Scope"后退按钮"安全吗?例如,如果我在View Scope中存储模型并从第1页,第2页,第3页到第4页,沿途修改模型对象(通过输入字段),然后点击后退按钮两次返回页面2并进行更改(再次转到第3页),视图范围中的模型是否仅包含最初呈现第2页时所做的更改,还是后续页面的更改?
Oracle ADF具有/称之为"进程范围"的东西,它通过标记放置到会话中的内容来处理此问题,因此每个页面都有自己的模型副本.
我经常在我的JSF XHTML页面上有Javascript,其中包含&&,我最终必须编码为 &&
例如,当我将以下内容放在我的JSF XHTML页面文件中时:
I am an & sign
Run Code Online (Sandbox Code Playgroud)
我收到错误:
The entity name must immediately follow the '&' in the entity reference
Run Code Online (Sandbox Code Playgroud)
解决这个问题的一种方法似乎是将'&'更改为&我认为不喜欢写'''.
对于我在Javascript中使用'&'的情况,我也可以将Javascript包装在CDATA标签中; 当包装在CDATA标签中时,我可以编写'&'而不必将其转义为&,这是一个很好的解决方法,可以在我的页面上具有更可读的Javascript代码.
但是当我想在页面上的其他地方使用文字'&'而不在<script>标签内时会发生什么呢?因此不能轻易地将代码包装在CDATA标签中?对于这些案件,我必须总是逃避'&' &吗?
注意尝试使用转义值的能力,似乎无法解决问题
我在Jenkins的构建管道分为三个部分:
我已经设置了它,以便可以发生并发构建,如果#2或#3当前正在为另一个构建运行,构建管道将阻止构建进入#2.
我希望能够做的是设置Jenkins以便在有多个构建等待时进行处理,并且#2和#3完成,因为只有LATEST构建才能进入#2和#3.
有没有办法开箱即用?如果您有"持续交付"一书,我正在尝试做的是实现p上的内容.118 - p.119
我们为weblogic(11g)部署新版app的方法是复制现有ear文件的顶部,然后停止并重新启动weblogic服务器.我们开始/停止weblogic而不是重新部署,因为已知的permgen问题(最终我们将耗尽perm gen并且必须退回weblogic服务器).
但是,这种部署方法有一个缺点 - weblogic看不到新的JSP版本.为了解决这个问题,我们不得不在重启服务器之前清除tmp目录中维护已编译JSP缓存的内容.是否有一个设置可以告诉weblogic在启动备份时擦除缓存/重新加载/重新编译JSP?