2012-04-20 4 views
0

Я пытаюсь извлечь данные из базы данных с помощью PLSQL Developer, общее количество строк, которые нужно извлечь, составляет более 1,5 миллиона. Когда я попытался собрать данные вместе, это займет много времени. Я собираюсь разбить его на две фазы, 1-й, ряды 1 - 1 миллион, а остатки идут на 2-й этап.
Как я могу сделать это в PLSQL?Разбиение результата PLSQL

+0

Вы делаете с помощью выборки Bulk? –

ответ

2

Этот номер выбирает каждую строку, используя аналитическую функцию, чтобы вы могли запрашивать номера строк;

SELECT * 
FROM 
(
SELECT *, 
     ROW_NUMBER() OVER(ORDER BY id_column_here) r 
    FROM my_table 
) 
WHERE R<=100000; 

Вы можете использовать это с меньшими интервалами строк, чтобы получить первую 1000 затем следующий и так далее:

SELECT * 
FROM 
(
SELECT *, 
     ROW_NUMBER() OVER(ORDER BY id_column_here) r 
    FROM my_table 
) 
WHERE R between 1000 and 2000; 
Смежные вопросы