我需要使用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
);
但我的日期有问题:***失败2665无效日期。
你可以帮我解决这个错误答案 0 :(得分:0)
我花了最后几个小时尝试将csv文件加载到Teradata中。我一直遇到2665错误。为了解决该问题,我了解到保存在csv文件中的日期必须设置为“ YYYY-MM-DD”格式。
所以我使用excel中的format cells选项重新格式化了数据,然后重新保存了csv。
我运行了创建表查询,将日期列转换为日期,如下所示: ,CREATION_DT DATE NOT NULL
在将csv导入Teradata之前,我先进入Teradata SQL Assistant,然后从菜单中选择“工具” >>“选项” >>“数据格式”,然后将“以这种格式显示日期”选项更改为2009-12-25选项。最后,我运行了导入查询。
希望这会有所帮助!采矿愉快!