Відповіді:
Арун,
тепер, коли sqlcl доступний у Oracle SQL Developer 4.1 EA2 (4.1.0.18.37), ви можете багато в чому використовувати його як старий і відомий sqlplus. sqlcl має налаштування формату виводу для csv
set sqlformat csv
spool x.csv
select * from yourtable[s];
spool off
для отримання додаткової інформації про sqlcl замовлення блогу Kris '
перш ніж sqlcl був найпростішим, для цього було використовувати APEX та експортувати звіт до CSV. У звичайному старому sqlplus ви можете це зробити, використовуючи
set lines 9999 -- the appropriate size
set head off -- no header lines
set colsep ';' --column separator to ;
set pages 0 -- no pages
set feed off
select your data;
spool to_tofile
/
spool off
Це найкраще працює, якщо результати потрібно записати на сервер додатків або клієнт. Якщо вони повинні бути записані на сервері баз даних, кращим варіантом може стати utl_file.
Рональд.
Ви повинні подивитися на вбудований пакет UTL_FILE . Є кілька способів, якими ви могли б користуватися.
Ви можете написати будь-яку кількість процедур у пакунках, які використовують пакет UTL_FILE для запису на будь-яку кількість файлів. Ці процедури можуть бути викликані практично з будь-якої програми, включаючи SQL * Plus.
Ви можете написати сценарій PL / SQL, щоб виконати ту саму роботу і викликати скрипт із самого командного рядка SQL * Plus, вказавши @ командний рядок у командному рядку.
Ви можете вставити блок за допомогою UTL_FILE безпосередньо в SQL * Plus, але це потрібно використовувати лише для одноразового експорту, і навіть тоді це може бути не найкращим маршрутом.
У їх найпростішому експорті файлів за допомогою UTL_FILE буде складатися з виклику FOPEN , одного або декількох викликів на PUT_LINE та виклику до FCLOSE .
Якщо продуктивність викликає занепокоєння, ви можете розглянути інструменти від постачальників.
Я оцінював інструменти BMC, Wisdomforce, CoSort, DBCrane. Усі вони значно швидше, ніж котушка, utl_file або зовнішня таблиця. Ми використовуємо DBCrane, тому що мій начальник не хотів витрачати надто багато на ліцензію.
Ви можете використовувати модуль Python та cx_Oracle для витягу даних на диск у форматі CSV.
Ось як ви підключаєтесь до Oracle за допомогою cx_Oracle:
constr='scott/tiger@localhost:1521/ORCL12'
con = cx_Oracle.connect(constr)
cur = con.cursor()
Після отримання даних ви можете переглядати список Python та зберігати дані у форматі CSV.
for i, chunk in enumerate(chunks(cur)):
f_out.write('\n'.join([column_delimiter.join(row[0]) for row in chunk]))
f_out.write('\n')
Я використовував такий підхід, коли писав TableHunter-For-Oracle