Я пытаюсь создать загрузчик данных для загрузки файлов в мою базу данных.
Формат файла следующий:
filename.dat,1234,12345,123456,20190521000001,20251231235959,123456789
filename.dat,1234,12345,123456,20190521000001,20251231235959,123456789
filename.dat,1234,12345,123456,20190521000001,20251231235959,123456789
К полям выше я хочу добавить ID
(уникальный первичный ключ) и поле, которое будет подстрокой имени файла (EVENT_FAMILY
). Поэтому моя таблица XYZ
состоит из следующих полей:
ID
FILENAME
STORE
PROMO_ID
PROMO_COMP_ID
START_DATE
END_DATE
ITEM
EVENT_FAMILY
I сделал следующий код
files="/my/file/location/filename.txt"
nrm_conf="load data
INFILE '$files'
alter session set nls_date_format = 'YYYYMMDDHH24MISS';
INTO TABLE XYZ
APPEND
FIELDS TERMINATED BY ','
(select nvl(max(ID)+1,1) from XYZ,
FILENAME,
STORE,
PROMO_ID,
PROMO_COMP_ID,
to_date('START_DATE,','YYYYMMDDHH24MISS')
to_date('END_DATE','YYYYMMDDHH24MISS'),
ITEM,
SUBSTR( FILENAME, 0,5) terminated by whitespace
)
"
и выполняется с помощью команды
sqlldr $UP $nrm_conf
, где $UP
- соединение с БД
. Возвращает две ошибки:
LRM-00104: 'session' is not a legal integer for 'discardmax'
SQL*Loader-100: Syntax error on command-line
Кто-нибудь может мне помочь?
Заранее спасибо