Oracle 12c - SQL * Loader условная загрузка

Я пытаюсь использовать SQL Loader и при вставке данных в таблицы мне нужно проверить некоторые условия и вставить данные.
Пример:

CASE COLUMNA  
WHEN 'NULL'
   -- INSERT NULL VALUE IN IT INSTEAD OF STRING 'NULL'  
ELSE  
   -- INSERT THE DATA AS IS
END

Можем ли мы использовать эти операторы case в управляющем файле SQL Loader? Не могу найти хороших примеров для этого нигде.

2 ответа

Решение

Попробуйте добавить кодировку в свой контрольный файл, например:

load data
  APPEND INTO TABLE XXX
  fields terminated by "\t"
  TRAILING NULLCOLS
  ( --Condition which you can add.
    START_DATE "CASE WHEN length(:START_DATE ) < 10 THEN null ELSE :START_DATE END"      

  ) 

где START_DATE столбец таблицы

К вашему сведению, что для более сложных тестов или других нужд, которые вы можете использовать повторно, вы также можете вызывать функции или элементы пакета, которые возвращают значение:

...
START_DATE "UTILITY_PKG.VALIDATE_DATE(:START_DATE)" 

Или запросы (должны быть заключены в perentheses):

START_DATE "(select sysdate from dual)", 
Другие вопросы по тегам