虽然我不建议在每次执行作业时使用Talend创建/替换updateDate函数,但最好在sql开发人员中提前创建它,您可以尝试使用两个组件分离sql脚本:
脚本的DDL部分位于
tOracleRow
:
"create or replace function updateDate(p_date varchar2) return date as
l_date date;
e_bad_day exception;
pragma exception_init (e_bad_day, -1847);
begin
begin
l_date := to_date(p_date,'yyyymmdd');
exception
when e_bad_day then
l_date := last_day(to_date(substr(p_date, 1, 6), 'yyyymm'));
end;
return l_date;
end;"
DML部分位于
tOracleInput
(并在组件上设置相应的架构)
"Select ASRF_NUMASR NIR,
ASSUR_NOASSURE NOASSURE,
ASRF_CODSEX sexe,
updateDate(ASSUR_DATNAIS) as DATE_REAL
from NORMAL_ASSUR
UNION
Select ASRF_NUMASR NIR,
ASSUR_NOASSURE NOASSURE,
..."
这样称呼他们:
tOracleRow
|
OnSubjobOk
|
tOracleInput -- Main -- target