11 g客户端SQL * loader:插入日期时间不起作用

问题描述 投票:0回答:1

我有以下数据

85566186; DATACONTRACT; 1; 0; -0.0235; 0.6361; 0.4448; 59; None; N; dnn_auc_0.650_acc_0.670_sensitivity_0.670_specificity_0.640.h5; 0.1 ;; 2020-01-26 00:00:00; 2020 -01-27 19:26:54; 18

我需要将其升华到以下Oracle表中:

CREATE TABLE DATAFOUNDATION.SHAPELY_SCORES_2
  ( 
    A                    INTEGER
  , B          VARCHAR2(1000)
  , C           NUMBER
  , D            VARCHAR2(1000)
  , E                 NUMBER
  , F              NUMBER
  , G          NUMBER
  , H    INTEGER 
  , I         VARCHAR2(4000)
  , J       VARCHAR2(16)  
  , K                 VARCHAR2(1000)
  , L             NUMBER
  , M         VARCHAR2(64)
  , N           DATE
  , O             DATE
  , P            INTEGER
  )
 ;

我正在使用以下控制文件:

load data
INFILE 'shaply_test.txt'
INTO TABLE DATAFOUNDATION.SHAPELY_SCORES_2
INSERT 
FIELDS TERMINATED BY ';' 
TRAILING NULLCOLS
(
A INTEGER(8) nullif A= BLANKS,
B nullif B = BLANKS,
C DOUBLE  nullif C= BLANKS,
D nullif D = BLANKS,
E INTEGER nullif E= BLANKS,
F FLOAT nullif F= BLANKS,
G FLOAT nullif G = BLANKS,
H FLOAT nullif H= BLANKS,
I nullif I= BLANKS,
J nullif J= BLANKS,
K nullif K = BLANKS,
L FLOAT nullif L= BLANKS,
M nullif M= BLANKS,
N TIMESTAMP 'YYYY-MM-DD hh24:mi:ss' nullif N = BLANKS,
O TIMESTAMP 'YYYY-MM-DD hh24:mi:ss' nullif O = BLANKS,
P INTEGER(8) nullif P = BLANKS)

但是我收到以下错误(抱歉,德语,但该消息易于翻译)

SQL * Loader:11.2.0.1.0版-2020年2月7日19:14:54正式生产

Spaltenname PositionLängTerm Eing Datentyp------------------------------ ---------- ----- ----- --- ---------------------前8位整数NULL wenn A =空白B NEXT *;字符空nn B =空白C下8个双NULL wenn C =空白D NEXT *;字符NULL wenn D =空白E NEXT 4整数NULL wenn E =空白F NEXT 4浮点数NULL wenn F =空白G NEXT 4 FLOATNULL wenn G =空白H NEXT 4 FLOATNULL wenn H =空白I NEXT *;字符NULL wenn I =空白J NEXT *;字符NULL wenn J =空白K NEXT *;字符空nn K =空白L下4个浮点数NULL wenn L =空白M NEXT *;字符NULL wenn M =空白N NEXT *;日期时间YYYY-MM-DD hh24:mi:ssNULL wenn N =空白O NEXT *;日期时间YYYY-MM-DD hh24:mi:ssNULL wenn O =空白P NEXT 8整数NULL wenn P =空白

Satz 1:Abgelehnt-Fehler在Tabelle DATAFOUNDATION.SHAPELY_SCORES_2,Spalte N.ORA-01841:(Volles)Jahr muss zwischen -4713und +9999 liegen und darf nicht 0 sein

Tabelle DATAFOUNDATION.SHAPELY_SCORES_2:0 Zeilen erfolgreichGeladen。 1 Zeile aufgrund von Datenfehlern nicht geladen。 0蔡琳尼赫拉·盖拉登(Nicht Geladen),当克劳瑟恩(Klauseln fehlerhaft)发出警告时。 0蔡琳nicht geladen,达·阿勒·费尔德(Nal Felder)空警告。

[Zugewiesener BereichfürBind-Array:134912字节(64Zeilen)字节在Lese-Puffer:1048576

[Gesamtzahl derübersprungenenlogischenDatensätze:0现在的日期:1历史档案馆日期:1出版日期:0

[Lauf begonnen am Fr Feb 07 19:14:54 2020 Lauf benedet am Fr Feb 0719:14:54 2020

[Abgelaufene Zeit:00:00:00.16 CPU-Zeit:00:00:00.04

有人可以告诉我我在做什么错吗?

oracle11g sql-loader
1个回答
0
投票

我找到了解决方案。我的代码中有两个问题。第一个是我正在使用FLOAT / DOUBLE,但需要DECIMAL EXTERNAL(link

第二个问题是十进制格式(总是带有区域设置)。我在每个十进制值列中添加了以下行:

 "REPLACE(:column_name, '.', ',')"

例如C DECIMAL EXTERNAL nullif C =空白“ REPLACE(:C,'。',',')”,

:)。

© www.soinside.com 2019 - 2024. All rights reserved.