Как устранить ошибку gdk-05030 при импорте данных csv в SQL Developer

#sql #oracle #date #oracle-sqldeveloper

Вопрос:

У меня возникла проблема с импортом CSV-файла с помощью SQL Developer. Я создал таблицу для импорта данных «даты», используя приведенный ниже код

 CREATE TABLE DEPARTMENT (  DATECOLUMN DATE );  

Я импортировал CSV, щелкнув правой кнопкой мыши и так далее.

Интересно, что данные CSV «дата» имеют формат «ГГГГ-ММ-ДД», но при загрузке в SQL developer (предварительный просмотр, перед импортом) они приняли формат «ММ/ДД/ГГГГ».

Я считаю, что в этом проблема, потому что при попытке импорта он вернул ошибку «gdk-05030», что означает, что данные содержат больше, чем необходимо (для соответствия формату).

Ответ №1:

Для меня это выглядит следующим образом:

  • формат даты в файле CSV yyyy-mm-dd (как вы сказали)
  • когда вы запросили таблицу после вставки, вы обнаружили, что значения выглядят по-другому — mm/dd/yyyy
  • это связано с тем, что в текущих настройках используется этот формат даты. Если вы хотите изменить его, запустите
     alter session set nls_date_format = 'yyyy-mm-dd';  

    а затем выберите строки из таблицы.

  • в качестве альтернативы перейдите в Настройки разработчика SQL и установите желаемый формат даты в разделе [База данных — NLS].

Комментарии:

1. Извините, мое объяснение, возможно, было плохим. Формат мм/дд/гггг отображается перед вставкой(предварительный просмотр). не запрошенный результат.

2. Вы пробовали с ALTER SESSION?

3. Мои слова были скудны. Ваш код внес изменения в настройки, да.

4. Точно; вы не можете изменять содержимое CSV-файла, разработчик SQL не является «редактором файлов» 🙂 Похоже, что не все данные в столбце MGRSTARTDATE соответствуют одному и тому же формату. Строки на скриншоте выглядят одинаково, поэтому — не могли бы вы создать небольшую копию исходных CSV-файлов и попытаться загрузить только те 7 строк, которые выглядят нормально? Если это работает нормально, то вы должны найти виновника в файле CSV. В качестве альтернативы измените тип данных столбца таблицы, например, на VARCHAR2(20), и загрузите весь файл. Затем, используя SQL, найдите недопустимые значения и исправьте их (а затем скопируйте допустимые значения в столбец типа данных ДАТЫ).

5. Это сработало. Спасибо вам за все ответы. Я еще не проверил формат всех строк, но импорт его в varchar2 сработал, и это все, что мне нужно, так как я бы не стал так сильно изменять данные. Спасибо!