SELECT @@ROWCOUNT Oracle 等效项

SELECT @@ROWCOUNT Oracle equivalent

我有一个查询管理应用程序。以前我使用 SQL 服务器数据库,并通过我曾经执行的查询获取受影响的行数:

SELECT * FROM TABLE(或任何其他 select 查询)

然后我 SELECT @@ROWCOUNT 获取受最后执行的查询影响的行数。

我已阅读有关 SQL%ROWCOUNT 的内容,但我无法在 SELECT 语句中使用它

有没有办法在 Oracle 数据库中执行此操作?。谢谢!

已编辑:

我已经通过 SELECT COUNT(*) FROM (QUERY) 获取受查询影响的行数解决了这个问题,我放弃了这种方法,因为如果查询包含 ORDER BY 子句。

我不知道 Oracle 中有任何您可以在纯 SQL 中使用的确切等价物。

根据您的具体需要,另一种可能对您有用的替代方法是在 select 语句中添加 count(*) over () 以提供总行数。它至少可以让您免于第二次重新执行查询。

select t.*,
       count(*) over () as num_rows
  from table t
 where ...

或者,如果你不能改变原来的查询,那么你可以这样换行:

select t.*,
       count(*) over () as num_rows
  from (query) t