Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как выгрузить данные из всех таблиц oracle в csv/xls? / 5 сообщений из 5, страница 1 из 1
18.01.2018, 14:24
    #39586442
inquisiteur
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выгрузить данные из всех таблиц oracle в csv/xls?
Есть n(=200) таблиц.

Необходимо быстро выгрузить данные (допустим, по тысяче строк) из всех таблиц в csv/xls.
Как это сделать? Каким-нибудь циклом же, верно?
...
Рейтинг: 0 / 0
18.01.2018, 14:59
    #39586477
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выгрузить данные из всех таблиц oracle в csv/xls?
inquisiteurЕсть n(=200) таблиц.

Необходимо быстро выгрузить данные (допустим, по тысяче строк) из всех таблиц в csv/xls.
Как это сделать? Каким-нибудь циклом же, верно?

Инструмент для выгрузки будет зависеть от от точной постановки задачи.
если это нужно сделать разово, решение будет одно, если нужно автоматизировать периодическую задачу - другое.

Ускорить можно, например запустив часть процессов параллельно.
нужно учитывать также, где нужно формировать эти файлы (сервер/клиент), если таблицы связаны, потребуются меры чтобы данные были согласованы.
...
Рейтинг: 0 / 0
18.01.2018, 15:56
    #39586525
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выгрузить данные из всех таблиц oracle в csv/xls?
inquisiteurЕсть n(=200) таблиц.

Необходимо быстро выгрузить данные (допустим, по тысяче строк) из всех таблиц в csv/xls.

Как это сделать? Каким-нибудь циклом же, верно?

Очень грубо, без проверки типа, длины строки, заключения строк в ковычки и так далее
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
-- генерация простейшего SQL для формирования CSV строк по списку таблиц из USER_TABLES
declare
cmd varchar2(4000);
fields1 varchar2(4000);
fields2 varchar2(4000);
begin

for i in (select table_name from user_tables) loop
        fields1:='';  -- формирование строки данных для select 
        fields2:='';  -- формирование строки полей для заголовка CSV
        for c in (select column_name from user_tab_columns where table_name=i.table_name) loop
                fields1:=fields1||c.column_name||'||'',''||';
                fields2:=fields2||c.column_name||',';
        end loop;
        fields1:=substr(fields1,1,length(fields1)-7);
        fields2:=substr(fields2,1,length(fields2)-1);
        cmd:='SELECT '''||fields2||''' FROM DUAL UNION ALL SELECT '||fields1||' FROM '||i.table_name;
        dbms_output.put_line(cmd);
end loop;
end;
/
-- на выходе будет что то вроде:
SELECT 'X,NAME' FROM DUAL UNION ALL SELECT X||','||NAME FROM DROPME

Что даст CSV
X,NAME
1,Ivanov0001
2,Ivanov0002
3,Ivanov0003
4,Ivanov0004
5,Ivanov0005
6,Ivanov0006
7,Ivanov0007
8,Ivanov0008
9,Ivanov0009
...
Рейтинг: 0 / 0
18.01.2018, 16:26
    #39586549
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выгрузить данные из всех таблиц oracle в csv/xls?
Легче pl/sql developer или oracle sql developer для жтого заюзать. Или сгенерить скрипт для sqlcl
...
Рейтинг: 0 / 0
22.01.2018, 13:32
    #39588294
inquisiteur
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выгрузить данные из всех таблиц oracle в csv/xls?
xtender,

у меня есть возможность использовать Oracle SQL Developer.
Вижу, как экспортировать целую БД, а как, например, только по тысяче строк? И в CSV/XLS?
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как выгрузить данные из всех таблиц oracle в csv/xls? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]