简体   繁体   English

使用 MLoad 将文本文件加载到表中时出现 Teradata 错误 2679

[英]Teradata Error 2679 when loading text file into table using MLoad

I have a problem with loading my data into teradata.table using MLoad.我在使用 MLoad 将数据加载到 teradata.table 时遇到问题。 I have a text file with a data which is an output from SQL query.我有一个文本文件,其中包含来自 SQL 查询的 output 数据。

851|73214|2019-01-03|2019-01-03|98.081270|RFF|249872083.40
854|73215|2019-01-03|2019-01-03|98.081270|RFF|355015298.0400
881|96634|2017-05-22|2017-05-22|97.697560|RFF|-6961747.270

and I'm trying to load this data using this mld file:我正在尝试使用此 mld 文件加载此数据:

.LOGTABLE dss.load_DEALS7_log;
.RUN FILE "C:\PASS.TXT";

RELEASE MLOAD dss.DEALS;

drop table dss.DEALS;
create multiset table dss.DEALS
(
FILE_ROWNUM INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1 MINVALUE -2147483647 MAXVALUE 100000000 NO CYCLE),
DEAL INTEGER,
EFFECT_DATE VARCHAR(80),
MAT_DATE VARCHAR(80),
CON DECIMAL(28,12),
C_CODE VARCHAR(80),
QUALITY DECIMAL(19,4),


LOAD_DTE DATE FORMAT 'YYYY-MM-DD'
)primary index(FILE_ROWNUM);

.BEGIN MLOAD TABLES dss.DEALS SESSIONS 2;
.LAYOUT FILE;
.FIELD DEAL * VARCHAR(80);
.FIELD EFFECT_DATE * VARCHAR(80);
.FIELD MAT_DATE * VARCHAR(80);
.FIELD CON * VARCHAR(80);
.FIELD C_CODE * VARCHAR(80);
.FIELD QUALITY * VARCHAR(80);


.DML LABEL LOAD;

INSERT INTO dss.DEALS VALUES
('',
:DEAL,
:EFFECT_DATE,
:MAT_DATE,
:CON,
:C_CODE,
:QUALITY,

CURRENT_DATE
);

.IMPORT 
 INFILE  "C:\deals.txt"
 LAYOUT FILE
 format VARTEXT '|' DISPLAY ERRORS NOSTOP
 APPLY LOAD

 ;
.END MLOAD;
.LOGOFF;

The problem is that the final table is empty and every row is in dss.ET_DEALS table with ErrorCode 2679. I know that the ErrorField is QUALITY, but I don't know why It won't load.问题是最终表是空的,每一行都在 dss.ET_DEALS 表中,错误代码为 2679。我知道 ErrorField 是 QUALITY,但我不知道为什么它不会加载。 The data seems alright.数据好像还行Teradata docs say - "This error occurs when the user submits a numeric-to-character conversion with an illegal format, or when, in converting characters to numeric, either the data or the format contains a bad character." Teradata 文档说 - “当用户提交具有非法格式的数字到字符转换时,或者在将字符转换为数字时,数据或格式包含错误字符时,就会发生此错误。” At first I thought That It's because of negative numbers, but then there should only be few rows and not whole input data in ET table.起初我认为这是因为负数,但 ET 表中应该只有几行而不是整个输入数据。 Any help would be greatly appreciated!任何帮助将不胜感激!

I deleted and crated the tables from ground up and also added .FILLER * VARCHAR(80);我从头开始删除并创建了表格,还添加了.FILLER * VARCHAR(80); in my mld file and It works fine.在我的 mld 文件中,它工作正常。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM