Types 如何在使用sql loader时将带有时区的时间戳转换为仅时间戳

Types 如何在使用sql loader时将带有时区的时间戳转换为仅时间戳,types,timestamp,sql-loader,Types,Timestamp,Sql Loader,我面临的错误如下: enter code here load data infile '/u01/app/oracle/scripts/Elite_export.csv' discardfile '/u01/app/oracle/scripts/data.dis' into table TBLRADIUSCUSTOMER_TEST fields terminated by "," ( USE

我面临的错误如下:

enter code here

       load data
         infile '/u01/app/oracle/scripts/Elite_export.csv'
         discardfile '/u01/app/oracle/scripts/data.dis'
         into table TBLRADIUSCUSTOMER_TEST
         fields terminated by ","
        ( 
USERNAME ,
PASSWORD ,
CUSTOMERSTATUS ,
CONCURRENTLOGINPOLICY ,
RADIUSPOLICY ,
ADDITIONALPOLICY ,
PARAM1 ,
PARAM2 ,
PARAM3 ,
PARAM4 ,
CUSTOMERTYPE ,
CALLINGSTATIONID ,
CUI ,
MACVALIDATION ,
IMSI ,
MEID ,
MSISDN ,
MDN ,
GEOLOCATION ,
CREATEDATE  "TO_TIMESTAMP(:CREATEDATE,'DD-MM-YY HH24:MI:SS.ff')",
LASTMODIFIEDDATE "TO_TIMESTAMP(:LASTMODIFIEDDATE,'DD-MM-YY HH24:MI:SS.ff')"
  )
使用SQL Loader将数据类型从带区域的时间戳更改为时间戳时需要帮助(6)


请建议我如何在将数据加载到Oracle表时放弃时区详细信息

如果您不关心时间戳,只需要日期中的数字,放弃时区信息,请使用substr放弃时区信息:

enter code here

     SQL*Loader: Release 11.2.0.3.0 - Production on Mon Mar 17 12:08:44 2014

      Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

       Control File:   data.ctl
       Data File:      /u01/app/oracle/scripts/Elite_export.csv
      Bad File:     Elite_export.bad
      Discard File: /u01/app/oracle/scripts/data.dis 
      (Allow all discards)

      Number to load: ALL
      Number to skip: 0
      Errors allowed: 50
      Bind array:     64 rows, maximum of 256000 bytes
      Continuation:    none specified
      Path used:      Conventional

      Table TBLRADIUSCUSTOMER_TEST, loaded from every logical record.
      Insert option in effect for this table: INSERT

      Column Name                  Position   Len  Term Encl Datatype
       ------------------------------ ---------- ----- ---- ---- ---------------------
      USERNAME                            FIRST     *   ,       CHARACTER            
      PASSWORD                             NEXT     *   ,       CHARACTER            
      CUSTOMERSTATUS                       NEXT     *   ,       CHARACTER            
      CONCURRENTLOGINPOLICY                NEXT     *   ,       CHARACTER            
      RADIUSPOLICY                         NEXT     *   ,       CHARACTER            
      ADDITIONALPOLICY                     NEXT     *   ,       CHARACTER            
      PARAM1                               NEXT     *   ,       CHARACTER            
      PARAM2                               NEXT     *   ,       CHARACTER            
      PARAM3                               NEXT     *   ,       CHARACTER            
      PARAM4                               NEXT     *   ,       CHARACTER            
      CUSTOMERTYPE                         NEXT     *   ,       CHARACTER            
      CALLINGSTATIONID                     NEXT     *   ,       CHARACTER            
      CUI                                  NEXT     *   ,       CHARACTER            
      MACVALIDATION                        NEXT     *   ,       CHARACTER            
      IMSI                                 NEXT     *   ,       CHARACTER            
      MEID                                 NEXT     *   ,       CHARACTER            
      MSISDN                               NEXT     *   ,       CHARACTER            
      MDN                                  NEXT     *   ,       CHARACTER            
     GEOLOCATION                          NEXT     *   ,       CHARACTER            
     CREATEDATE                           NEXT     *   ,       CHARACTER            
           SQL string for column : "TO_TIMESTAMP(:CREATEDATE,'DD-MM-YY HH24:MI:SS.ff')"
     LASTMODIFIEDDATE                     NEXT     *   ,       CHARACTER            
      SQL string for column : "TO_TIMESTAMP(:LASTMODIFIEDDATE,'DD-MM-YY HH24:MI:SS.ff')"

     value used for ROWS parameter changed from 64 to 47
     Record 1: Rejected - Error on table TBLRADIUSCUSTOMER_TEST, column CREATEDATE.
     ORA-01830: date format picture ends before converting entire input string

     Record 2: Rejected - Error on table TBLRADIUSCUSTOMER_TEST, column CREATEDATE.
      ORA-01830: date format picture ends before converting entire input string


     and so on.....
Substr以“DD-MM-YY HH24:MI:SS.ff”格式获取日期部分

CREATEDATE  "TO_TIMESTAMP(SUBSTR(instr(:CREATEDATE, ' ', 10),1,24),'DD-MM-YY HH24:MI:SS.ff')",

日期和时区信息之间的分隔符位置。我假设数字和tz信息之间会有一个空格,所以我使用17作为instr的起始位置,在'DD-MM-YY HH24:MI:SS'日期部分之后找到第一个空格。

感谢有价值的响应,我使用简单的SUBSTR函数实现了相同的结果:斜体粗体
CREATEDATE“SUBSTR(:CREATEDATE,1,31)”,
instr(:CREATEDATE, ' ', 17)