0

ファイルで生年月日として「19851003」を渡していますが、ログ ファイルで次のエラーが発生しています。

ORA-01841: (full) year must be between -4713 and +9999, and not be 0

文字列としてのみ渡しているため、エラーが発生する理由は何ですか

ログ ファイルのエラー:

error processing column DATE_OF_BIRTH in row 2 for datafile /xfer/x/directory/filename.csv
ORA-01841: (full) year must be between -4713 and +9999, and not be 0

私のテーブルコード:

CREATE TABLE table_name
(
  ID                  VARCHAR2(10 BYTE),      
  FIRST_NAME          VARCHAR2(150 BYTE),
  LAST_NAME           VARCHAR2(150 BYTE),
  MIDDLE_NAME         VARCHAR2(150 BYTE),
  DATE_OF_BIRTH       DATE
)

ORGANIZATION EXTERNAL
( TYPE ORACLE_LOADER
  DEFAULT DIRECTORY DIRECTORY_TABLES
  ACCESS PARAMETERS 
  (RECORDS  DELIMITED BY '\n'
   SKIP 1
   BADFILE  DIRECTORY_TABLES:'filelist.bad'
   LOGFILE  DIRECTORY_TABLES:'filelist.log'
   DISCARDFILE   DIRECTORY_TABLES:'filelist.dsc'
   FIELDS TERMINATED BY ','
   OPTIONALLY ENCLOSED BY '"'
   MISSING FIELD VALUES ARE NULL
   REJECT ROWS WITH ALL NULL FIELDS
   (ID                  ,
    FIRST_NAME          ,
    LAST_NAME           ,
    MIDDLE_NAME         ,
    DATE_OF_BIRTH       DATE "YYYYMMDD" 
   )
)
LOCATION (DIRECTORY_TABLES:'filename.csv')
)
REJECT LIMIT 0
NOPARALLEL
NOMONITORING;

私のCSVファイル:

"id","First Name","Last Name","MI","DOB"
"2","Felicia","Brown","M","19810209"
"3","Jose","Romero","M","19890706"
"4","Valerie","Moore","","19621112"
4

2 に答える 2

2

DATE_OF_BIRTH の仕様では、date-format-spec が必要です。試す:

DATE_OF_BIRTH  CHAR DATE_FORMAT DATE MASK "YYYYMMDD"

ここを参考にして「date_format_spec」で検索

共有してお楽しみください。

于 2014-08-23T16:05:13.733 に答える