Импорт жаб - Изменение значения столбца, в зависимости от того, с какого листа Excel были получены данные - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь импортировать в таблицу файл Excel с 3 листами.Для одного из столбцов я хотел бы изменить заполненное значение в зависимости от того, из какого листа он получен.Есть ли способ сделать это с помощью импорта жаб.Листы выглядят одинаково и имеют одинаковые столбцы.Но если это лист 1, я хочу, чтобы определенный столбец был ABC, если лист 2 XYZ, лист 3 ETC.Есть ли способ?

1 Ответ

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

Я часто загружаю файлы Excel, но не заметил такой возможности. Поэтому я снова пошёл к загрузчику, шаг за шагом, тщательно проверил, что он предлагает - нет, ничего такого нет.

Обходной путь, довольно простой, - отредактировать файл Excel и создать этот столбец. Тогда

  • введите ABC в первую ячейку этого столбца
  • выберите ячейку
  • дважды щелкните по правому нижнему углу
  • он автоматически заполнит все строки в этом листе ABC (в этом столбце)
  • сделать то же самое для других листов

Другой вариант - установить значение столбца по умолчанию, например,

alter table test modify ident varchar2(3) default 'abc';

Это нужно сделать для каждого загружаемого листа, измените 'abc' на 'def' и т. Д.


Или, если вы переключитесь на SQL * Loader (эта опция есть в том же меню, что и «Импорт данных таблицы»), создайте управляющий файл, который использует ключевое слово CONSTANT, например,

load data
infile excel.csv
append
into table test
fields terminated by ',' optionally enclosed by '"'
(name, 
 value, 
 ident constant "abc"
)

Как и в предыдущем случае, вам нужно изменить постоянное значение перед загрузкой данных каждого рабочего листа.

Также обратите внимание, что SQL * Loader не может загрузить файл XLS - сначала вам нужно сохранить каждый лист в свой собственный файл .csv.


Какой вариант я бы выбрал? Вероятно, первый; кажется самым простым и быстрым.

...