Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / загрузка xls / 21 сообщений из 21, страница 1 из 1
23.01.2019, 13:37
    #39763427
saxarock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка xls
Есть простая задачка ТЗ по которой выглядит вот так: есть файлик с расширением *.xls либо .xlsx который необходимо положить в табличку в oracle db.

Сложности начинаются с тем что фалик *.xls либо .xlsx имеет не постоянную структуру в кол-ве и названии колонок.
Думал в строну транспонирования таблички в структуру стабильную где header фалика (*.xls либо .xlsx) это key а значение каждой колонки записи это value. Пробывал транспонировать на VBA, но медленно и неповоротливо.

Может кто сталкивался с похожей задачей?! Просьба подсказать как решали?
...
Рейтинг: 0 / 0
23.01.2019, 13:48
    #39763438
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка xls
Для решения подобных задач существуют инструменты ETL, в т.ч. бесплатные.
...
Рейтинг: 0 / 0
23.01.2019, 13:51
    #39763444
saxarock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка xls
andrey_anonymous,

эх придется все таки разворачивать пентаху.
...
Рейтинг: 0 / 0
23.01.2019, 13:57
    #39763448
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка xls
saxarockразворачивать пентаху.
Пентаха уже не та. Она "вышла замуж" и взяла фамилиё Hitachi Vantra.
...
Рейтинг: 0 / 0
23.01.2019, 14:00
    #39763451
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка xls
saxarockфайлик ... положить в табличкуloader
...
Рейтинг: 0 / 0
23.01.2019, 14:02
    #39763455
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка xls
-2-saxarockфайлик ... положить в табличкуloaderА как давно лодырь обучился excel-ки грузить?
...тем более с плавающей структурой...
...
Рейтинг: 0 / 0
23.01.2019, 14:12
    #39763467
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка xls
andrey_anonymousА как давно лодырь обучился excel-ки грузить?Вроде с 8i.
andrey_anonymousтем более с плавающей структуройВот именно, что "тем более".
...
Рейтинг: 0 / 0
23.01.2019, 14:13
    #39763471
Oleg M.Ivanov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка xls
andrey_anonymousА как давно лодырь обучился excel-ки грузить?
...тем более с плавающей структурой...
xls(xlsx) -> csv -> loader -> oracle_db
Управляющий файл, правда, придется каждый раз подстраивать под "имеет не постоянную структуру в кол-ве и названии колонок".
...
Рейтинг: 0 / 0
23.01.2019, 14:16
    #39763476
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка xls
Oleg M.Ivanovxls(xlsx) -> csv -> loader -> oracle_db
Управляющий файл, правда, придется каждый раз подстраивать
В том-то и дело.
Нужен препроцессинг и генерация управляющего файла.
И с этим прекрасно справляются ETL-струменты, и лодыря они позвать тоже вполне себе в состоянии - можно промежуточный файл, можно stream...
...
Рейтинг: 0 / 0
23.01.2019, 14:18
    #39763479
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка xls
-2-andrey_anonymousА как давно лодырь обучился excel-ки грузить?Вроде с 8i.
andrey_anonymousтем более с плавающей структуройВот именно, что "тем более".
Буду благодарен за демонстрацию хотя бы одного из тезисов (xls лодырем 8i и "тем более с плавающей структурой").
...
Рейтинг: 0 / 0
23.01.2019, 14:52
    #39763532
Vladimir Filin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка xls
saxarock... Просьба подсказать как решали?
Talend Open Studio for Data Integration. Разбор заголовка с колонками, сравнение с шаблоном маппинга к таблицам в oracle, заливка из непосредственно из датаинтегратора. Муторная задача (( С множеством проверок, шаблонов, валидаторов...
...
Рейтинг: 0 / 0
23.01.2019, 15:03
    #39763546
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка xls
Взять в руки Java, Apache POI, JDBC.... делов на пару дней и/или подфорум Работа и пара ящиков доширака )))
...
Рейтинг: 0 / 0
23.01.2019, 15:07
    #39763554
Vladimir Filin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка xls
saxarock...есть файлик с расширением *.xls либо .xlsx .... Просьба подсказать как решали?
Вдруг пригодится. Если Ваша система сама выгружает пользователю файлик для дозаполнения и обратной загрузки, то задача существенно упрощается. Как решали: в этом случае в файлик (наш) application level записывал все необходимые ключи для обратной загрузки, перечень возможных колонок был согласован. Системные колонки были скрыты и защищены от просмотра и изменений. При обратной загрузке application level точно знал что и куда грузить. Колонки, которые пользователь наплодил вне шаблонов - игнорировались. Файлы особо одарённых, изменивших системные данные, - игнорировались.
...
Рейтинг: 0 / 0
23.01.2019, 15:15
    #39763567
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка xls
andrey_anonymousБуду благодарен за демонстрацию хотя бы одного из тезисов (xls лодырем 8i и "тем более с плавающей структурой").
Код: sql
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.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
~>sqlldr 2/2@2 control=1.sl

SQL*Loader: Release 22.2.2.2.2 - Production on Fri Feb 22 22:22:22 2222

Copyright (c) 1982, 2222, Oracle and/or its affiliates.  All rights reserved.

Path used:      Conventional
Commit point reached - logical record count 1

Table FILE:
  1 Row successfully loaded.

Check the log file:
  1.log
for more information about the load.

~>sqlplus 2/2@2

SQL*Plus: Release 22.2.2.2.2 Production on  Fri Feb 22 22:22:22 2222

Copyright (c) 1982, 2222, Oracle.  All rights reserved.

Last Successful login time:  Fri Feb 22 2222 22:22:22 +22:22

Connected to:
Oracle Database 22v Enterprise Edition Release 22.2.2.2.2 - Production

SQL> select * from file;

B
--------------------------------------------------------------------------------
8FE0AEA8A7A2AEABECADA0EF20E1E2E0E3AAE2E3E0A0200D0A

SQL> exit
Disconnected from Oracle Database 22v Enterprise Edition Release 22.2.2.2.2 - Production

~>type 1.sl
load data
infile *
append into table file (
   f filler char(222),
   b lobfile(f) terminated by eof
)
begindata
file.xls

~>type file.xls
Произвольная структура

~>

...
Рейтинг: 0 / 0
23.01.2019, 15:20
    #39763576
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка xls
-2-
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
load data
infile *
append into table file (
   f filler char(222),
   b lobfile(f) terminated by eof
)
begindata
file.xls



Спасибо, посмеялся :)
...
Рейтинг: 0 / 0
23.01.2019, 16:29
    #39763662
oragraf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка xls
saxarock,
Пишешь макрос на VBA из экселя, делашь кнопку в файле и вперед. Через ОДБЦ инсертами. Можно сгенерировать файл с инсертами, мерджами или контрольник для лоадера + текстовик с разделителями.
...
Рейтинг: 0 / 0
23.01.2019, 19:59
    #39763818
merch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка xls
saxarockнеобходимо положить в табличку в oracle db

Насколько регулярно будет возникать данная задача?
...
Рейтинг: 0 / 0
23.01.2019, 20:13
    #39763822
EvgeniaMakarova
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка xls
Вам нужно докладывать данные из файла в существующую таблицу ?
...
Рейтинг: 0 / 0
24.01.2019, 07:00
    #39763922
saxarock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка xls
merchНасколько регулярно будет возникать данная задача?

Ежедневно.
...
Рейтинг: 0 / 0
24.01.2019, 07:00
    #39763923
saxarock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка xls
EvgeniaMakarovaВам нужно докладывать данные из файла в существующую таблицу ?

Да
...
Рейтинг: 0 / 0
24.01.2019, 11:46
    #39764123
rpovarov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка xls
Я делал так:
- XLS конвертировался в XLSX
- XLSX заливались в базу как BLOB
- С помощью AS_READ_XLSX парсинг

Выход универсальный, можно его крутить как хочешь. Я для своих целей ещё в оригинальный исходник добавил вывод информации о merge cells, color metadata и external link file.

Есть ещё проект https://github.com/mbleron/ExcelTable, который умеет парсить и XLS и ODF, но мне он не подошёл, так как требует заранее знать название листа, номера столбцов и строк, а в моих входных данных это может плавать.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / загрузка xls / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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