当我不知道表的确切设置时,如何在OracleDB表上实现分页?
我目前正在为几个不同的远程数据源(如MS-Exchange,GroupWise,各种目录服务等)以及不同的SQL数据库开发一个地址簿连接器。其中,OracleDB。
用户可以指定远程数据库,表名以及列名,例如 first_name , last_name , company_etc 等 但他可以自由地将任何列留空,因此我不能依赖实际设置的单个列。
因此,默认Oracle分页查询的 ORDER BY 部分必须以与MSSQL查询( ORDER BY SELECT(NULL))类似的方式实现。< / p>
我不需要严格的分拣可靠性
的PostgreSQL:
SELECT *
FROM table_name
OFFSET ? LIMIT ?
MySQL的:
SELECT *
FROM table_name
LIMIT ?,?
MSSQL:
WITH select_result AS
(
SELECT *,
Row_number() OVER (ORDER BY SELECT(NULL))
AS RowNum FROM table_name
)
SELECT * FROM select_result
WHERE RowNum BETWEEN ? AND ?
OracleDB的:
???