Teradata 快速加载到时态表

Teradata 快速加载到时态表,teradata,Teradata,有一个包含3个字段的cvs文件 1,cat,2012-06-16,2013-06-16 1,cat,2013-06-16, 我正在尝试使用fastload脚本将其加载到具有有效时间段(日期)的时态表中 nonsequenced validtime INSERT INTO financial.test1 (id,name,valid_dt) values (:id,:name,period( cast(:start_dt as date FORMAT 'YYYY-MM-DD'),cas

有一个包含3个字段的cvs文件

1,cat,2012-06-16,2013-06-16 
1,cat,2013-06-16,
我正在尝试使用fastload脚本将其加载到具有有效时间段(日期)的时态表中

nonsequenced validtime    
INSERT INTO financial.test1 (id,name,valid_dt) values
(:id,:name,period( cast(:start_dt as date FORMAT 'YYYY-MM-DD'),cast(:end_dt as date FORMAT  'YYYY-MM-DD'))
);
我得到的错误是RDBMS错误3618:快速加载中不允许使用表达式 插入,列INTERNALPERIODDATETYPE

在手册中找不到,他们只说fastload可以实现


谢谢。

FastLoad不允许ANSI样式转换,必须是旧的Teradata样式:

:start_dt (date, FORMAT 'YYYY-MM-DD')
但是没有老式的句号演员,FastLoad也不允许任何类型的表达式,句号(…)是一个表达式

因此,您只能加载可自动转换为PEROD的数据,如:

1;cat;(2012-06-16, 2013-06-16) 
1;cat;(2013-06-16, 9999-12-31)

包括括号、逗号后面的空白和不同的定界符…

我建议只需使用FastLoad或MultiLoad将数据作为日期(或字符)加载到暂存表中,然后使用

nonsequenced validtime    
INSERT INTO financial.test1 (id,name,valid_dt) values
select id, name, period(start_dt,COALESCE(end_dt, date '9999-12-31'))
from stagingtable