1
这里是我的代码:PLS-00201:标识符 'D.HOLIDAY_DATE' 必须声明为
DECLARE
V_loop number(2); -------declare the loop times
begin
looptimes(V_loop); ------set the forcast times from parameter table
loop
IF V_loop > 0 ------forcast
THEN
IF to_char((sysdate+V_loop-7),'dd/mon/yy') not like To_chat((d.holiday_date),'dd/mon/yy')----------condition that perivous 'day' not holiday
then
insert into local_rm16(tni, lr, frmp, day, hh, volume)
SELECT TNI, LR, FRMP, sysdate+v_loop, HH, AVG(VOLUME)
FROM V_nem_rm16,DBP_holiday d
where to_char(day, 'Day') = to_char(sysdate+V_loop, 'Day')
group by day,hh, lr, frmp,tni
order by 1;
else
exit;
end if;
V_loop := V_loop -1;
ELSE
exit;
ENd if;
END loop;
end;
我不知道HOWTO中,如果条件下,任何人都可以帮我申报HOLIDAY_DATE,THX
欢迎来到SO!发布代码时请使用格式化工具 - 这会让您的问题更具可读性(我已经为您重新格式化了您的文章)。 –
@FrankSchmitt thx为:) – user3544017
对不起,弗兰克,我想了解为什么你会需要循环。如果我的方向不对,请原谅。你可以在where子句中使用那个IF子句条件,同时插入到local_rm16表中......类似于 - where to_char((sysdate + 5),'dd/mon/yy')不像To_chat((d.holiday_date),'dd/((d.holiday_date),'dd/mon/yy')或者to_char((sysdate + 6),'dd/mon/yy') – Veerender