2017-01-06 8 views
0

У меня есть внешняя таблица связана с CSV-файл, как это:изменить оракул externat дату таблицы формат столбец

create table XT_FIN 
(
    ba_date     DATE 
) 
organization external 
( 
    type ORACLE_LOADER 
    default directory XT_C 
    access parameters 
    ( 
    records delimited by newline 
      badfile  XT_LOGS:'f.bad' 
      logfile  XT_LOGS:'f.log' 
      discardfile XT_LOGS:'f.dsc' 
      skip 1 
      fields terminated by ',' optionally enclosed by '"' 
      lrtrim 
      missing field values are null 
        ( 

    BA_DATE   DATE 'MM/DD/YYYY HH:MI:SS am' 
       ) 
) 
    location (XT_C:'detail.csv') 
) 
reject limit UNLIMITED; 

CSV формат дата и время изменяется на 24 часов, так что я хотел chnage его в этой таблице, используя эту инструкцию :

ALTER TABLE 
XT_FIN 
MODIFY  ( BA_DATE  DATE 'MM/DD/YYYY HH24:MI:SS' ); 

, но он не любит иметь строку формата после DATE, она хочет). Как изменить только формат столбца Date? Thanks

ответ

1

Вы пытаетесь изменить column definition в самой таблице - и столбец даты не имеет формата. Вы altering an external table и вам нужно вместо того, чтобы изменить параметры доступа:

alter table xt_fin 
access parameters (fields (ba_date date 'MM/DD/YYYY HH24:MI:SS')); 

Это заменяет параметры доступа раздел whoel, хотя, так что вам действительно нужно повторно указать все остальные параметры тоже:

alter table xt_fin 
access parameters 
(
    records delimited by newline 
    badfile  D42:'f.bad' 
    logfile  D42:'f.log' 
    discardfile D42:'f.dsc' 
    skip 1 
    fields terminated by ',' optionally enclosed by '"' 
    lrtrim 
    missing field values are null 
    (
    ba_date date 'MM/DD/YYYY HH24:MI:SS' 
) 
); 

... включая любые другие столбцы, которые вы пропустили из своего сообщения.

+0

Спасибо, Алекс, отлично сработал! Я предполагал, что я меняю первый набор столбцов, но не нашел, как добраться до второго списка. – Olga

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