Oracle sqlldr 时间戳格式问题

Oracle sqlldr timestamp format issue

我在让 sqlldr 将 DAT 文件数据文件导入我的 table 时遇到问题,特别是时间戳字段。

2018-11-02T20:54:38.000000+0000

我已经在我的控制文件中尝试了所有的组合方式并且正在原地打转。有谁知道我的控制文件中应该为上述时间戳格式使用什么?

作为参考,这是我最近尝试过的:

load data
infile 'feed.dat'
into table cust_acct
fields terminated by "|" 
( ...
  updateddatetime TIMESTAMP "YYYY-MM-DD-HH24.MI.SS", 
...)

日期 2018-11-02T20:54:38.000000+0000 有一个时区部分,所以你想要 TIMESTAMP WITH TIME ZONE data type 并且你有 6 个小数秒数字,所以你的数据类型应该有 6 的精度。

在带反斜杠的 DateTime format model you can use double quotes to indicate a literal string and, in sqlldr you can escape the double quotes 中:

updateddatetime TIMESTAMP(6) WITH TIME ZONE "YYYY-MM-DD\"T\"HH24:MI:SS.FF6TZR", 

updateddatetime TIMESTAMP(6) WITH TIME ZONE "YYYY-MM-DD\"T\"HH24:MI:SS.FF6TZHTZM",