ORA-01722: неверный номер в sql Loader
Я использую утилиту Oracle Sql Loader из оболочки Linux для загрузки данных CSV в базу данных Oracle. Я пытаюсь заполнить значение одного столбца в БД на основе значения другого столбца. Но мои функции декодирования, кажется, не работают.
ПФБ образец. Я использую значение COMPANY_NAME для заполнения значения поля ID поставщика, поскольку идентификатор поставщика не является частью файла CSV.
файл ctl:
LOAD DATA
APPEND INTO TABLE .MESSAGE_ARCHIVE_DATA
FIELDS TERMINATED BY '|'
OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(
TRANSACTION_DATE "to_date(:TRANSACTION_DATE,'YYYYMMDD')",
COMPANY_NAME "decode(trim(:COMPANY_NAME), null, 'NULL', :COMPANY_NAME)",
ARCHIVER_NAME "decode(trim(:ARCHIVER_NAME), null, 'NULL', :ARCHIVER_NAME)",
ECPD,
ACCOUNT_NUMBER,
MDN_COUNT,
VENDOR_ID "decode(TRIM(:COMPANY_NAME),'XXX',1001,
'YYY',1002,
'NULL')",
SERVICE constant 'INC_MSGARCHIVE',
STATUS constant "A",
DATE_OF_ENTRY "SYSDATE"
)
CSV-файл:
20161102|XYZ|XXX|652659|3111110199-169
Record 1: Rejected - Error on table MESSAGE_ARCHIVE_DATA, column VENDOR_ID.,ORA-01722: invalid number