Мне пришлось копировать данные из таблиц oracle в файлы.ROW_NUMBER() неправильно упорядочивает записи
У меня есть запрос соединения, который извлекает записи 800k, поэтому я использовал функцию row_number() вместе с предложением order by, чтобы генерировать 4 файла, содержащих по 200 тыс. Каждый.
Запрос:
SELECT * FROM (
SELECT ROW_NUMBER() OVER (order by FILE_KEY desc) rn,
FILE_KEY, ROUTING_NO, INTLROUT_TYPE, ABBR_COUNTRY_CODE_2D, HO_CATALOG_NO
FROM BANK_INTL_ROUT_TBL rout, BANK_INTL_LOC_TBL loc
WHERE loc.CATALOG_NO = rout.FILE_KEY)
WHERE rn BETWEEN start AND end;
Параметры:
For 1st File : start =1 ,end = 200000
For 2nd File : start =200001 ,end = 400000
For 3rd File : start =400001 ,end = 600000
For 4th File : start =600001 ,end = 800000
Но когда я проверил последний 10 строку, используя этот запрос в браузере SQL запросов и последние 10 строк файла различны, что является последовательность отличается файл и SQL-запрос.
SELECT * FROM (
SELECT ROW_NUMBER() OVER( order by FILE_KEY desc) rn,
FILE_KEY,ROUTING_NO,INTLROUT_TYPE,ABBR_COUNTRY_CODE_2D,HO_CATALOG_NO
FROM BANK_INTL_ROUT_TBL rout, BANK_INTL_LOC_TBL loc
WHERE loc.CATALOG_NO=rout.FILE_KEY)
WHERE rn BETWEEN 709990 AND 80000;
Какая таблица является мастером, а какие детали? Если BANK_INTL_LOC_TBL - это подробности, возможно ли, что тот же FILE_KEY будет более одного раза в наборе результатов? –
yes BANK_INTL_LOC_TBL - подробности, а FILE_KEY - не один раз –
Без предложения 'order by' в запросе строки, записанные в файл, могут быть в порядке, отличном от порядка' row_number() '.Таким образом, последний запрос, когда исправляется использование уникального ключа, ** не может ** дать вам последние десять строк файла, но всего десять строк, которые существуют где-то в файле. –