У меня странная проблема, когда данные, отображаемые в курсоре, неверны . Ниже таблица и запрос. Но когда я заменяю CURSOR (Select * from H)
на CURSOR (фактический запрос H), он работает
Tab1 Tab2
Col1 Col2 Col3 Col4
---------- ----------
1 A 1 A
2 B 2 B
3 C 6 F
4 D 7 G
5 E 8 H
WITH H AS (SELECT * FROM tab1
WHERE NOT EXISTS (SELECT 1 FROM tab2 WHERE col1 = col3)
)
K AS (SELECT count(*) cnt FROM H)
SELECT cnt, CURSOR(SELECT * FROM H) result FROM K;
Вывод вышеупомянутого запроса дает Cnt = 3, и курсор имеет данные, как показано ниже, что неверно. Но когда вы просто запускаете Select * from H, вы получаете правильный вывод, то есть 3, 4, 5 строк
Col1 col2
--- ---
1 A
2 B