Я нашел много примеров пейджинга в Oracle. Конкретный, который я использую сейчас, выглядит примерно так:
SELECT * FROM (
SELECT a.*, ROWNUM RNUM FROM (
**Select * From SomeTable**) a
WHERE ROWNUM <= 500) b
WHERE b.RNUM >= 1
Строка, выделенная жирным шрифтом, представляет «оригинальный» запрос. Остальная часть SQL существует для реализации подкачки страниц. Проблема, с которой я сталкиваюсь, - это запрос, который сам по себе является совершенно допустимым; произойдет сбой, когда я помещу его в код подкачки.
Как пример - этот запрос не будет выполнен:
SELECT TABLE1.*, TABLE1.SomeValue FROM TABLE1
С неоднозначной ошибкой столбца. Но без моего дополнительного кода; это будет работать просто отлично. У меня есть большое количество «сохраненных» запросов, но я должен убедиться, что мое решение по поисковому вызову не делает их недействительными.
Я использовал SQL Developer в качестве инструмента запросов Oracle, и ему удается реализовать подкачку, которая работает даже с вышеуказанным запросом, который не выполняется, когда я оборачиваю его в код подкачки. Может кто-нибудь сказать мне, как им удается это осуществить?