Как экспортировать более 200000 записей из таблицы в CSV в SQLDeveloper

#r #oracle-sqldeveloper

#r #oracle-sqldeveloper

Вопрос:

У меня есть запрос, который содержит около 2000000 записей в таблице. Я хочу экспортировать все эти записи из таблицы в файл CSV. Но файл CSV позволяет мне одновременно загружать не более 200000 файлов. Моя конечная цель — взять все эти записи и сформировать фрейм данных в R для дальнейшего анализа.

Комментарии:

1. 2 миллиона строк — это много данных, возможно, вам даже будет сложно загрузить их в R за один раз. Рассматривали ли вы возможность экспорта случайного подмножества данных, скажем, 10%?

2. Я еще не рассматривал это. Но мне бы потребовались все данные для анализа. Есть ли способ разбить ее на фрагменты, а затем экспортировать или загрузить?

3. Вы думали об использовании RODBC библиотеки для прямого подключения к Oracle?

4. Да , я пытался . Но чтобы использовать это, мне пришлось бы добавить источник данных в ODBC Data Source Admin . Я ввожу данные своего сервера и пытаюсь, но во время тестового подключения происходит сбой соединения. (Ошибка: Тайм-аут соединения)

5. В принципе, это ваши варианты; вы либо импортируете CSV-файлы, либо напрямую переносите всю таблицу во фрейм данных через ODBC.

Ответ №1:

У SQL Developer нет ограничений на размер экспортируемого CSV-файла.

Вот пример таблицы в CSV, содержащей 2 500 000 записей.

 CREATE TABLE so_2m (
       x   INT,
       y   DATE
);

BEGIN
       FOR i IN 1..2500000 LOOP
              INSERT INTO so_2m VALUES (
                     i,
                     SYSDATE
              );

       END LOOP;
END;
/

commit;

select count(*) from so_2m;

Table SO_2M created.


PL/SQL procedure successfully completed.


Commit complete.


  COUNT(*)
----------
   2500000
  

А теперь давайте сделаем запрос и экспортируем в CSV

введите описание изображения здесь

А теперь давайте посмотрим на экспорт, а затем подсчитаем количество строк в файле.

В моем CSV-файле 2 500 001 строка. Первая строка — это заголовок списка имен столбцов.

введите описание изображения здесь

Мой Mac Mini 2018 года выпуска с Oracle VirtualBox под управлением Database 18c EE и SQL Developer версии 18.4 сгенерировал этот файл примерно за 2 минуты.

Комментарии:

1. insert into so_2m select rownum, sysdate from dual connect by level <= 2500000 это может сэкономить вам несколько строк кода

2. @ConnorMcDonald да, я знаю, но я был слишком занят, чтобы не думать 🙂