Oracle T-SQL到PL-SQL-使用count返回记录数和使用相同查询的搜索结果

Oracle T-SQL到PL-SQL-使用count返回记录数和使用相同查询的搜索结果,oracle,tsql,plsql,Oracle,Tsql,Plsql,我正在SQL Server中使用该查询,它工作非常好: SELECT * FROM Person " + "WHERE (@Nome IS NULL OR Nome LIKE @Nome + '%') " + "ORDER BY [Nome] " + "OFFSET " + pageSize * (pageNumber - 1) + " ROWS " + "FETCH NEXT " + pageSize + " ROWS ONLY " + " " + "SELECT COUNT(Id) FRO

我正在SQL Server中使用该查询,它工作非常好:

SELECT * 
FROM Person " +
"WHERE (@Nome IS NULL OR Nome LIKE @Nome + '%') " +
"ORDER BY [Nome] " +
"OFFSET " + pageSize * (pageNumber - 1) + " ROWS " +
"FETCH NEXT " + pageSize + " ROWS ONLY " +
" " +
"SELECT COUNT(Id) FROM Person " +
"WHERE (@Nome IS NULL OR Nome LIKE @Nome + '%') AND Ativo = 1";
在这个搜索中,我返回结果以及这些结果的总数。输出为“无列名”的所有记录的总和

但我无法找到使用Oracle返回此结果的方法

在下面的查询中,我返回了结果,但我没有找到使用“count”返回总数以及值的方法

甲骨文:

SELECT * 
FROM
    (SELECT ROWNUM rnum, b.* 
     FROM 
         (SELECT * 
          FROM Person 
          WHERE (:Nome IS NULL OR NOME LIKE ':Nome%')
         ) b 
    ) 
WHERE RNUM between :PageSize * (:PageNumber - 1) AND  (:PageSize * :PageNumber)";

这是两个不同的查询。您可以在Oracle中执行这两个查询,顺便说一下,Oracle支持偏移量。。。。语法,无需将其转换为rownum…NOME LIKE':NOME%'的变量名用引号括起来。这在Oracle中的效果并不比在SQL Server中更好。不要引用变量名。