Импорт Toad — измените значение столбца, на основе которого были получены данные с листа Excel

#toad

#toad

Вопрос:

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

Ответ №1:

Я часто загружаю файлы 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.


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