2016-07-15 6 views
0

Я собираюсь выполнять пакетную загрузку в таблицу, называемую temp_data, где некоторые из столбцов имеют даты NULLable.Оператор LOAD TABLE с датами NULLable

Вот что я до сих пор:

LOAD TABLE some.temp_data 
(SomeIntegerColumn ',', SomeDateColumn DATE('YYYYMMDD') NULL('NULL'), FILLER(1), SomeStringColumn ',') 
USING CLIENT FILE '{0}' ESCAPES OFF DELIMITED BY ',' ROW DELIMITED BY '#' 

и я пытаюсь загрузить как следующий файл

500,NULL,Monthly# 
500,NULL,Monthly# 
500,NULL,Monthly# 

К сожалению ошибка, я получаю:

ERROR [ 07006] [Sybase] [драйвер ODBC] [Sybase IQ] Не удалось преобразовать NULL, Mon в дату (столбец SomeDateColumn)

Любые идеи, почему это не сработает?

ответ

0

Похоже, что он считывает 8 символов после первого разделителя и пытается интерпретировать их как дату.

Попробуйте переключиться на FORMAT BCP. Следующий пример может работать на файл образец:

LOAD TABLE some.temp_data (
    SomeIntegerColumn 
    , SomeDateColumn NULL('NULL') 
    , SomeStringColumn 
) 
USING CLIENT FILE '{0}' 
ESCAPES OFF 
DELIMITED BY ',' 
ROW DELIMITED BY '#' 
FORMAT BCP 

Кроме того, FORMAT BCP также имеет преимущество, что не требуют завершающих разделителей.

+0

Я также смог заставить его работать, изменив 'FILLER (1)' на 'FILLER (',')' в вашем исходном запросе. – stevepastelan

 Смежные вопросы

  • Нет связанных вопросов^_^