Сценарий SQL Loader поможет с добавлением Sysdate, пользователю
-
28-09-2019 - |
Вопрос
Я пытаюсь загрузить данные из файла, и я хочу установить create_date и обновлять_date в sysdate и create_by и updated_by пользователю
Здесь стол, с которым я работаю:
CREATE TABLE CATALOG
(CNO NUMBER,
CTITLE VARCHAR2(25),
CREATED_BY VARCHAR2(10) NOT NULL,
CREATED_DATE DATE NOT NULL,
UPDATED_BY VARCHAR2(10) NOT NULL,
UPDATED_DATE DATE NOT NULL,
CONSTRAINT CATALOG_PK Primary Key (CNO));
И вот файл данных:
1,"Title 1"
2,"Title 2"
3,"Title 3"
4,"Title 4"
5,"Title 5"
6,"Title 6"
и мой файл управления:
LOAD DATA
INFILE "mydata.csv"
INTO TABLE CATALOG
FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
(CNO,CTITLE,CREATED_BY "USER", CREATED_DATE "SYSDATE", UPDATED_BY "USER", UPDATED_DATE "SYSDATE")
Когда я пытаюсь загрузить его с помощью SQL-загрузчика ... Все записи отклонены:
Record 1: Rejected - Error on table CATALOG, column CREATED_BY.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 2: Rejected - Error on table CATALOG, column CREATED_BY.
Column not found before end of logical record (use TRAILING NULLCOLS)
.......
Есть идеи, что я делаю не так? Заранее спасибо.
Решение
Просто делай то, что говорит Oracle: добавить TRAILING NULLCOLS
в ваш файл управления:
LOAD DATA
INFILE "mydata.csv"
INTO TABLE CATALOG
FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS
(CNO,CTITLE,CREATED_BY "USER", CREATED_DATE "SYSDATE", UPDATED_BY "USER", UPDATED_DATE "SYSDATE")
Это требуется, потому что только первые два столбца находятся в входном файле. Реминг чисто вычисляется.
Если вы не укажете это, Oracle пытается прочитать третий, четвертый и т. Д. Столбец, но не могу найти один.
Другие советы
В контрольном файле попробуйте это
(CNO,CTITLE,CREATED_BY "USER", CREATED_DATE SYSDATE, UPDATED_BY "USER", UPDATED_DATE SYSDATE)
Не связан с StackOverflow