Как я могу загрузить большой объем данных в базу данных oracle из .csv-файла, не рискуя отбросить или несовпадение данных? - PullRequest
0 голосов
/ 29 апреля 2019

Я пытаюсь перенести большой объем данных в базу данных оракула из существующих файлов Excel.Из-за большого количества загружаемых строк (10 000 и более) каждый раз невозможно использовать SQL Developer для этих задач.В каждом рабочем листе есть данные, которые нужно поместить в разные таблицы, но в то же время сохранить отношения и не отбрасывать никаких данных.

На данный момент я использую один файл .CSV для каждой таблицы и впоследствии сопоставляю их.Это в сочетании с большим риском добавления неправильного FK и тем самым испортить дерьмо.И у меня нет ни времени, ни энергии, ни желания на уборку, даже если это мой собственный беспорядок ...

Сначала я подумал, могу ли я выполнить массовую передачу с помощью загрузчика sql, используя, возможно, какой-нибудь plsql-скриптctl-файл (используемый для сопоставления свойств), но кажется, что я совсем не в себе с этим… (или я…?) Другой идеей было создать простую программу на c #, использовать fastMember и загрузитьбаза данных таким образом.(Но это означает, что мне нужно потратить время на то, чтобы на самом деле сделать программу, какой бы маленькой она ни была).

Я не могу быть единственным, у кого возникла эта проблема, но пытаюсь донести до меня мой notToElevatedNinjaGoogling-skills заканчивает тем, что использует либо SQL-разработчик (ведьма не альтернатива), либо массовое копирование из SQL-загрузки (и где мне нужно потом все это сопоставить).

Есть ли альтернативные решения для моегопроблема или мне нужно справиться с вышеуказанными решениями?

1 Ответ

0 голосов
/ 29 апреля 2019

Рассматривали ли вы использование файлов CSV в качестве внешних таблиц ? Поскольку они действуют так, как если бы они были обычными таблицами Oracle, вы можете написать (PL /) SQL против них, вставив данные в разные таблицы в целевой схеме. Это может дать вам больше свободы и контроля над тем, что вы делаете.

За сценой все еще стоит SQL * Loader.

...