2017-01-06 21 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之後有格式化字符串,它想)。 如何僅更改此日期列的格式? 謝謝

回答

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