我在 Microsoft SQL Server 2012 中有一个链接的 Oracle 11g 服务器。
我正在尝试从 Oracle 检索一个大型链接数据集,因此为了限制它,我只想获取前 100 条记录。
在 SQL Server 中,它很简单
select top 100 from ....
在 Oracle 中,语法是
...where rownum <= 100 order by rownum
只要我的 SQL Server 2012 查询中有两个以上的连接,我的
select top 100
导致以下错误
链接服务器“BIS”的 OLE DB 提供程序“OraOLEDB.Oracle”返回消息“ORA-01403:未找到数据
消息 7346,级别 16,状态 2,第 1
行无法从 OLE DB 提供程序“OraOLEDB. Oracle”用于链接服务器“BIS”。
如果我拿出top 100
来,它可以工作,但会在我们的网络上拖出太多数据。另外,在我完成之前,我还需要将相当数量的连接添加到我已经拥有的 3 的 select 语句中。
如何在选择语句中加入大量表,但在我的 SQL Server 2012 上使用 T-SQL 语法仅返回前 100 条记录并从 Oracle 检索这些记录?