hma*_*tos 0 sql oracle rowcount
我有一个查询管理应用程序.以前我使用的是SQL Server数据库,并通过以前的查询来获取受影响的行数:
SELECT * FROM TABLE (或任何其他选择查询)
然后我SELECT @@ROWCOUNT去获取上次执行的查询所影响的行数.
我已阅读过SQL%ROWCOUNT,但我无法在SELECT语句中使其工作
有没有办法在Oracle数据库中执行此操作?谢谢!
编辑:
我通过执行SELECT COUNT(*) FROM (QUERY)以获取受查询影响的行数来解决这个问题,我放弃了这种方法,因为如果查询包含ORDER BY子句,它在SQL Server中不起作用.
我不知道Oracle中可以在纯SQL中使用的任何完全等价物.
根据您的具体需要,可能适合您的替代方法是count(*) over ()在您的select语句中添加一个,以便为您提供总行数.它至少可以避免您第二次重新执行查询.
select t.*,
count(*) over () as num_rows
from table t
where ...
Run Code Online (Sandbox Code Playgroud)
或者,如果您无法更改原始查询,则可以将其包装为:
select t.*,
count(*) over () as num_rows
from (query) t
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16109 次 |
| 最近记录: |