Вам необходимо, чтобы формат в вашем контрольном файле соответствовал значению, которое вы получаете в своем файле данных:
, EXAMPLE_DATE DATE "MM/DD/YYYY HH:MI:SS AM" NULLIF (EXAMPLE_DATE=BLANKS)
Я установил таблицу, соответствующую вашему примеру:
create table example_table (example1 varchar2(10), example2 varchar2(10), example_date date);
И файл данных, содержащий:
A,B,2/5/2010 12:00:00 AM
И управляющий файл, такой как:
OPTIONS (READSIZE=20971520, BINDSIZE=20971520, ROWS=10000, ERRORS=90000)
LOAD DATA
INFILE *
INTO TABLE EXAMPLE_TABLE
APPEND
FIELDS TERMINATED BY ',' optionally enclosed by '"'
TRAILING NULLCOLS
(
EXAMPLE1 CHAR NULLIF (EXAMPLE1=BLANKS)
, EXAMPLE2 CHAR NULLIF (EXAMPLE2=BLANKS)
, EXAMPLE_DATE DATE "MM/DD/YYYY HH:MI:SS AM" NULLIF (EXAMPLE_DATE=BLANKS)
)
Запуск этого через отчет:
Commit point reached - logical record count 1
и файл журнала сказал:
Table EXAMPLE_TABLE:
1 Row successfully loaded.
0 Rows not loaded due to data errors.
0 Rows not loaded because all WHEN clauses were failed.
0 Rows not loaded because all fields were null.
и таблица заполнилась этими данными:
select * from example_table;
EXAMPLE1 EXAMPLE2 EXAMPLE_DA
---------- ---------- ----------
A B 2010-02-05
Вы также сказали:
это должно войти втаблица как «ММ / ДД / ГГГГ»
Должна указываться в таблице как дата.Дата не имеет никакого внутреннего удобочитаемого формата;Oracle использует собственное внутреннее представление для эффективного и однозначного хранения данных.Когда вы запрашиваете таблицу, ваш клиент преобразует ее в распознаваемый формат для отображения, используя либо свои собственные настройки, либо настройку NLS_DATE_FORMAT
вашего сеанса.Если вы видите даты в формате, который вы показали, то это то, что ваш клиент / сессия настроен для их отображения.Мой настроен как YYYY-MM-DD, так что вы видите это в выводе моего запроса выше.