【发布时间】:2017-10-11 18:22:38
【问题描述】:
我需要使用 BTEQ 将包含 2 个日期的数据从 CSV 文件导入 teradata 易失性表。 我使用以下脚本:
CREATE MULTISET VOLATILE TABLE tab1,
NO FALLBACK ,
NO BEFORE JOURNAL,
NO AFTER JOURNAL,
CHECKSUM = DEFAULT,
DEFAULT MERGEBLOCKRATIO (
ent DECIMAL(3,0) NOT NULL,
eng DECIMAL(7,0),
dat_deb DATE,
dat_fin DATE,
ad_id DECIMAL(8,0),
id_lig DECIMAL(6,0),
Cd_a DECIMAL(7,0),
va_n DECIMAL(3,0),
satu DECIMAL(3,0)
)
PRIMARY INDEX (ent, eng,ad_id,id_lig)
ON COMMIT PRESERVE ROWS ;
然后我将以下数据导入到创建的表中:
.IMPORT VARTEXT ';' FILE="C:\Desktop\fichiertest.csv" , SKIP=1;
.REPEAT *
.SET QUIET ON;
USING(
ent DECIMAL(3,0) NOT NULL,
eng DECIMAL(7,0),
dat_deb DATE,
dat_fin DATE,
ad_id DECIMAL(8,0),
id_lig DECIMAL(6,0),
cd_a DECIMAL(7,0),
va_n DECIMAL(3,0),
satu DECIMAL(3,0)
)
INSERT INTO tab1(
ent,
eng,
dat_deb ,
dat_fin ,
ad_id,
id_lig,
cd_a,
va_n,
satu
)
VALUES (
:ent,
:eng,
CAST(:dat_deb AS DATE),
CAST(:dat_fin AS DATE),
:ad_id,
:id_lig,
:cd_a,
:va_n,
:satu
);
但我对日期有疑问:*** Failure 2665 Invalid date.
你能帮我解决这个错误吗
【问题讨论】:
-
定义 VARTEXT 时,所有输入列必须定义为
VARCHAR(..)。此外,您应该通过应用高PACK来避免单行插入,例如.REPEAT * PACK 1000 ...