Как исправить ошибку ORA-01843 при импорте данных из xls-файла?
Имеется xls-файл большого объёма, который необходимо импортировать в БД. Работаю в PL/SQL Developer 12. Предварительно создал в БД пустую таблицу, для чего использовал два варианта запроса:
Сначала такой:
CREATE TABLE vz_117390_in_garant (
COLUMN1 VARCHAR2(38), /*--1 № дог.*/
... ... ...
COLUMN5 DATE, /*--5 Дата заключения договора*/
... ... ...
COLUMN12 TIMESTAMP, /*-12 Дата установки*/
... ... ...
COLUMN28 NUMBER(38, 4), /*-28 Мощность максимальная*/
... ... ...
COLUMN38 VARCHAR2(128)) /*-38 Примечание*/
;
Когда не получилось, то такой:
CREATE TABLE vz_117390_in_garant (
COLUMN1 VARCHAR2(38), /*--1 № дог.*/
... ... ...
COLUMN5 VARCHAR2(10), /*--5 Дата заключения договора*/
... ... ...
COLUMN12 VARCHAR2(19), /*-12 Дата установки*/
... ... ...
COLUMN28 VARCHAR2(38), /*-28 Мощность максимальная*/
... ... ...
COLUMN38 VARCHAR2(128)) /*-38 Примечание*/
;
Импорт пытался делать двумя способами:
- Путём непосредственного копирования из excel-файла прямо в таблицу в режиме редактирования (с учётом того, что для правильного копирования из xls-таблицы в неё надо обязательно добавить левую колонку с порядковыми номерами строк);
- С помощью инструмента в PL/SQL Developer - ODBC Importer.
В итоге при любом способе получаю сообщение такого типа:

Пытался бороться такими способами:
Устанавливал параметр NLS_DATE_FORMAT:
ALTER SESSION SET NLS_DATE_FORMAT = 'DD.MM.YYYY';
Заменял в исходном файле формат ячеек с "Общий" на "Текстовый";
Использовал в БД вместо первого варианта запроса (см. выше) второй с целью исключить использование типа данных "DATE".
Однако ничего не изменилось. Прошу подсказать ответ на вопрос топика.
Ответы (1 шт):
Положительный результат удалось получить после подсказки в первом комменте топика следующим путём:
- Заменить в исходном xls-файле форматы всех ячеек на листе только на "Текстовый";
- Выполнить второй запрос (см. формулировку вопроса);
- Включить режим редактирования созданной на 2-м шаге таблицы;
- Скопировать строки из исходного xls-файла через буфер обмена прямо в таблицу (с учётом того, что для правильного копирования из xls-таблицы в неё надо обязательно добавить левую колонку с порядковыми номерами строк);
- Дать команду commit для записи данных в таблицу;
- Выйти из режима редактирования таблицы.