1

我创建了一个外部表,除了其中一种日期格式外,一切看起来都很好,它看起来默认为 MM/DD/YYYY,但我希望它与文件中的 YYYYMMDD 一样。该列是 DATE_ID。有人有任何线索吗?

谢谢!

CREATE TABLE R2SCHD.AAFES_RDF_XTRNL_CAL_HIER
(
  DATE_ID           DATE,
  DATE_DESC         DATE,
  WEEK_ID           VARCHAR2(25 BYTE),
  WEEK_DESC         DATE,
  MNTH_ID           VARCHAR2(25 BYTE),
  MNTH_DESC         VARCHAR2(25 BYTE),
  QRTR_ID           VARCHAR2(25 BYTE),
  QRTR_DESC         VARCHAR2(25 BYTE),
  HALF_ID           VARCHAR2(25 BYTE),
  HALF_DESC         VARCHAR2(25 BYTE),
  YEAR_ID           VARCHAR2(25 BYTE),
  YEAR_DESC         VARCHAR2(25 BYTE),
  DOW_ID            VARCHAR2(25 BYTE),
  DOW_DESC          VARCHAR2(25 BYTE)
)
ORGANIZATION EXTERNAL
  (  TYPE ORACLE_LOADER
     DEFAULT DIRECTORY R2SCHD_STATIC_DATA
     ACCESS PARAMETERS 
     ( RECORDS DELIMITED BY NEWLINE
       NOBADFILE
       NOLOGFILE
       NODISCARDFILE
       FIELDS TERMINATED BY ','
       MISSING FIELD VALUES ARE NULL
      (
       DATE_ID CHAR(8) DATE_FORMAT DATE MASK "YYYYMMDD",
       DATE_DESC CHAR(10) DATE_FORMAT DATE MASK "MM/DD/YYYY",
       WEEK_ID,
       WEEK_DESC CHAR(10) DATE_FORMAT DATE MASK "MM/DD/YYYY",
       MNTH_ID, MNTH_DESC, QRTR_ID, QRTR_DESC, HALF_ID, 
       HALF_DESC, YEAR_ID, YEAR_DESC, DOW_ID, DOW_DESC
      )
     )
    LOCATION (R2SCHD_STATIC_DATA:'rdft_cal_external.dat')
  )
REJECT LIMIT UNLIMITED
NOPARALLEL
NOMONITORING;
4

1 回答 1

4

您将 date_id 创建为 DATE 数据类型,这是正确的。日期没有“格式” - 您在屏幕上看到的带有斜线的内容由您的NLS_DATE_FORMAT设置决定。您在使用什么 - SQL*Plus?SQL开发者?蟾蜍?

例如在 SQL Developer:工具 - 首选项 - 数据库 - NLS 中,您将看到(并且能够更改)您的日期格式。这就是控制屏幕上显示的内容 - 而不是您用于外部表的格式(它不会帮助您将其设置为 'YYYYMMDD')。

于 2016-10-21T22:18:14.227 回答