Oracle11g 当日期列有两位数小时时,外部表失败

Oracle11g 当日期列有两位数小时时,外部表失败,oracle11g,external-tables,Oracle11g,External Tables,我在Oracle11g中使用一个外部表。我在文件的最后一列中有一个日期字段。我将其解析为表定义中的时间戳列: CREATE TABLE e_tbl_one ( FOPV_KEY INTEGER, FACILITY VARCHAR2(50), QTY_6HR NUMBER, SECURITY_CODE NUMBER, LOAD_DATE TIMESTAMP(0) WITH LOCAL TIME ZON

我在Oracle11g中使用一个外部表。我在文件的最后一列中有一个日期字段。我将其解析为表定义中的时间戳列:

CREATE TABLE e_tbl_one
(
FOPV_KEY            INTEGER,
FACILITY            VARCHAR2(50),
QTY_6HR             NUMBER,
SECURITY_CODE       NUMBER,
LOAD_DATE          TIMESTAMP(0) WITH LOCAL TIME ZONE
)
ORGANIZATION EXTERNAL
  (  TYPE ORACLE_LOADER
     DEFAULT DIRECTORY MYDB_EXTERNAL_TABLE_DATA
     ACCESS PARAMETERS 
       ( records delimited by newline SKIP 1
         NOBADFILE
         NOLOGFILE
         fields terminated by '|' 
         missing field values are null 
         (
          FOPV_KEY,
          FACILITY,
          QTY_6HR,
          SECURITY_CODE,
          LOAD_DATE date 'mm/dd/yyyy hh:mi:ss am'
         )
  )
     LOCATION (MYDB_EXTERNAL_TABLE_DATA:'e_tbl_one.txt')
  )
REJECT LIMIT UNLIMITED
NOPARALLEL
NOMONITORING;
这将解析日期
11/10/2015 1:59:37 PM
,但不
11/10/2015 01:59:37 PM
11/10/2015 12:45:12 PM

日志文件显示:

KUP-04021: field formatting error for field LOAD_DATE
KUP-04026: field too long for datatype
KUP-04101: record 2 rejected in file /dbfs_direct/FS1/MYDB_EXTERNAL_TABLE/e_tbl_one.txt
此时装载日期的数据为:
11/11/2015 07:28:36 am
。文本文件中的记录为:

70581692|WS3|308|2048|11/11/2015 07:41:00 am[CRLF]

为什么不能将其解析为加载日期“mm/dd/yyyy hh:mi:ss am”?

会出现什么错误?您处于什么补丁级别?在11.2.0.4中对我很好…我也在11.2.0.4.0(64位生产)中。我没有得到错误,只是表中没有数据,因为所有行都失败了。我认为这与它是文件中的最后一列这一事实有关。也许拿出
NOLOGFILE
看看它实际报告了什么会有所帮助。可能是行结束或CRLF问题,但我认为它会以另一种方式出错。您能否准确地添加.txt文件中的内容-至少前三行?如果您可以检查文件格式(DOS/Unix,字符集),这也会很有用。
以“|”RTRIM结尾的字段似乎可以做到这一点