Я загружаю данные из файла csv в таблицу с использованием sqlldr. Существует один столбец, который отсутствует в каждой строке файла csv. Данные, необходимые для заполнения этого столбца, присутствуют в одном из других столбцов строки. Мне нужно разделить (разделить (.)) Данные этого столбца и заполнить этот столбец.Заменить данные одного столбца подстрокой другого столбца в загрузчике sql
как: -
column1:- abc.xyz.n
Так неизвестный столбец (column2) должен быть
column2:- xyz
Кроме того, есть еще один столбец, который присутствует в строке, но это не то, что я хочу, чтобы ввести в таблицу. Это также необходимо заполнить из столбца 1. Но в этом случае есть около 50 случаев if-else. Желательно ли декодировать это?
column1:- abc.xyz.n
Затем
column2:- hi if(column1 has 'abc')
if(column1 has 'abd' then 'hello')
, как это существует около 50, если-то в других случаях.
Спасибо за помощь.
Я постараюсь реализовать и вернуться. Я думал об использовании операторов case для второй части и использовал SUBSTR (: column1, INSTR (: column1, '.'), INSTR (: column1, '.', - 1)) для первой части. Будут ли они работать тоже? – Jaydeep
Я пробовал ваш метод, отлично работает, и использование функции для второй части ускорило работу. Спасибо – Jaydeep
@jaydeep рад, что это сработало для вас. Что касается вашего первого комментария, то оба могут работать, но будут путать и больше обслуживания в долгосрочной перспективе, если изменения потребуются.Таким образом, не-кодер может обновлять значения поиска в таблице, если они будут изменены, например. –