我正在尝试从连接中选择一个记录子集,从 5000 到 10000。过去我曾收到过类似的查询,但它们的复杂性略低。这是我正在尝试使用的查询,如果我删除 rownum/rnum 引用(以及外部选择),我会按预期收到所有记录,所以我知道逻辑是好的。
SELECT *
FROM (
SELECT unique cl.riid_,
rownum as rnum
FROM <table 1> cl, <table 3> mil
WHERE cl.opt = 0 AND
(cl.st_ != 'QT' OR cl.st_ IS NULL) AND
cl.hh = 0 AND
cl._ID_ = mil._ID_ AND
mil.TYPE in (0, 1, 2, 3, 4) AND
EXISTS
( SELECT 'x'
FROM <table 2> sub
WHERE cl.ea_ = lower(sub.ea_) AND
sub.status = 0 AND
lower(sub.subscription) = 'partner'
) AND
rownum <= 10000
)
where rnum > 5000
因此,当我运行此查询时,我会从我们的系统收到此消息(这不是 Oracle cli 接口,而是存在于其顶部的 Web 层,因此如果它不正常,请直接显示错误消息)
'错误:选择查看的资源无效。在查看其数据之前,您可能需要重新创建或修复该对象。
资源将是查询的结果。
那么有没有人知道发生了什么或更好的方法来做到这一点?
谢谢!