Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Загрузка данных  [new]
RMagistr2015
Member

Откуда:
Сообщений: 1389
Скажите пожалуйста, как можно загрузить данные в таблицу?
Есть csv файл, сохранённый после выполнения select
как его вставить в таблицу на другом сервере?
2 июн 17, 09:58    [20533684]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных  [new]
Добрый Э - Эх
Guest
RMagistr2015,

sqlloader, внешняя таблица.
2 июн 17, 10:02    [20533687]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных  [new]
Добрый Э - Эх
Guest
RMagistr2015,

если файл - результат работы select-а, то можно модифицировать селект и сразу генерировать инсерты.
как? Ф.А.К.
2 июн 17, 10:03    [20533690]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных  [new]
AmKad
Member

Откуда:
Сообщений: 5222
Если файл относительно небольшой, то в Oracle SQL Developer есть достаточно вменяемый инструмент для загрузки табличных данных из плоских файлов.
2 июн 17, 10:10    [20533699]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных  [new]
RMagistr2015
Member

Откуда:
Сообщений: 1389
AmKad
Если файл относительно небольшой, то в Oracle SQL Developer есть достаточно вменяемый инструмент для загрузки табличных данных из плоских файлов.

Им я и воспользовался ))) Спасибо большое )))
2 июн 17, 11:45    [20534052]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных  [new]
Извращенец
Guest
RMagistr2015,

utl_tcp + dbms_lob + pipelined function

До 1-2 млн обрабатывается терпимо, и не нужно, как во внешней таблице, жестко завязываться на имя файла.
2 июн 17, 12:06    [20534167]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5151
Извращенец,

А зачем utl_tcp?
2 июн 17, 12:24    [20534263]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных  [new]
Извращенец
Guest
dbms_photoshop
Извращенец,

А зачем utl_tcp?

Ну я же Извращенец, подключаюсь из базы для забора файла к FTP.
2 июн 17, 12:30    [20534297]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных  [new]
RMagistr2015
Member

Откуда:
Сообщений: 1389
Извращенец
dbms_photoshop
Извращенец,

А зачем utl_tcp?

Ну я же Извращенец, подключаюсь из базы для забора файла к FTP.


Читаешь надпись - "ну я же извращене", думаешь - почему??? Читаешь ник - Извращенец,
думаешь - а вот почему, логично )))))))))
2 июн 17, 13:31    [20534657]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных  [new]
Извращенец
Guest
RMagistr2015,

Не, ну тебе файл разово загрузить надо. А мне регулярно csv и xml на FTP кладут. Вместо того, чтобы копировать в локальную директорию, сразу читаю в clob/xml и парсю. С csv выходит в разы медленнее, чем потоковый парсинг посредством oracle_loader, но меня устраивает.
2 июн 17, 13:40    [20534699]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных  [new]
RMagistr2015
Member

Откуда:
Сообщений: 1389
Извращенец
RMagistr2015,

Не, ну тебе файл разово загрузить надо. А мне регулярно csv и xml на FTP кладут. Вместо того, чтобы копировать в локальную директорию, сразу читаю в clob/xml и парсю. С csv выходит в разы медленнее, чем потоковый парсинг посредством oracle_loader, но меня устраивает.


а код какой-нибудь ты писал для этих целей?
2 июн 17, 13:44    [20534727]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных  [new]
Извращенец
Guest
RMagistr2015
а код какой-нибудь ты писал для этих целей?

Адаптировал pl/sql код для работы с ftp, взятый на просторах интернета. Написал парсилку CSV-clob-ов - возвращающую очередной фрагмент в виде двумерного массива. В общем поизвращался знатно.
2 июн 17, 13:52    [20534785]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных  [new]
flax..
Guest
Извращенец, по рукам бы надавал. Это идиотизм, чистой воды.
2 июн 17, 14:07    [20534863]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных  [new]
Извращенец
Guest
Извращенец
Адаптировал pl/sql код для работы с ftp, взятый на просторах интернета. Написал парсилку CSV-clob-ов - возвращающую очередной фрагмент в виде двумерного массива. В общем поизвращался знатно.

Ну и на выходе ничто не мешает мне иметь pipelined-function, из которой я делаю select, а она в это время лезет на ftp и парсит файл. Как тебе?
2 июн 17, 14:11    [20534882]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных  [new]
Извращенец
Guest
flax..
Извращенец, по рукам бы надавал. Это идиотизм, чистой воды.

Значит не зря я скрываюсь под серым ником.
2 июн 17, 14:12    [20534886]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных  [new]
RMagistr2015
Member

Откуда:
Сообщений: 1389
Извращенец
Извращенец
Адаптировал pl/sql код для работы с ftp, взятый на просторах интернета. Написал парсилку CSV-clob-ов - возвращающую очередной фрагмент в виде двумерного массива. В общем поизвращался знатно.

Ну и на выходе ничто не мешает мне иметь pipelined-function, из которой я делаю select, а она в это время лезет на ftp и парсит файл. Как тебе?


КРуто ))))))
А почему тебе отят по рукам надовать? За что? что не так? вроде красиво, всю чёрную работу спрятал в функцию и select из неё, не красота ли? ))))
2 июн 17, 15:09    [20535143]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных  [new]
Извращенец
Guest
RMagistr2015,

Мой вариант подходит работает только для файлов небольших размеров, так как функция substr каждый раз сканирует clob сначала. Разбора же большого файла можешь не дождаться. Можно конечно немного наоптимизировать, но пока не до этого. Вариант удобен для "а давай-ка по-быстрому посмотрим в селекте, что же они нам там прислали".
Для файлов же промышленного масштаба разумнее использовать oracle_loader.
2 июн 17, 15:37    [20535296]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных  [new]
RMagistr2015
Member

Откуда:
Сообщений: 1389
Извращенец
RMagistr2015,

Мой вариант подходит работает только для файлов небольших размеров, так как функция substr каждый раз сканирует clob сначала. Разбора же большого файла можешь не дождаться. Можно конечно немного наоптимизировать, но пока не до этого. Вариант удобен для "а давай-ка по-быстрому посмотрим в селекте, что же они нам там прислали".
Для файлов же промышленного масштаба разумнее использовать oracle_loader.


А можешь прислать на очту фрагмент кода? Жутко интересно посмотреть, если ты не против конечно ))))
5 июн 17, 08:40    [20538982]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить