【发布时间】:2013-09-01 02:39:35
【问题描述】:
我写了这个脚本,但它不起作用。我没有收到任何错误消息,它只是挂起,您能帮帮我吗?
DECLARE
vYear_ID VARCHAR(4);
vQuarter CHARACTER(6);
vMonth_Num SMALLINT;
vMonth_Name VARCHAR(20);
vWeekday_Num SMALLINT;
vWeekday_Name VARCHAR(20);
vStartDate Date := '01/01/1998';
vEndDate Date := '31/12/2002';
vDate_ID Date;
vDate_ID := vStartDate;
BEGIN
WHILE vDate_ID < vEndDate
LOOP
vYear_ID := TO_CHAR(vDate_ID,'YYYY');
vQuarter := TO_CHAR(vDate_ID,'YYYY')||'Q'||TO_CHAR(vDate_ID,'Q');
vMonth_Num := TO_NUMBER(TO_CHAR(vDate_ID,'MM'));
vMonth_Name := TO_CHAR(vDate_ID,'Month');
vWeekday_Num := TO_NUMBER(TRIM(leading '0' FROM TO_CHAR(vDate_ID,'D')));
vWeekday_Name := TO_CHAR(vDate_ID,'Day');
INSERT INTO Time_Dim VALUES (vDate_ID, vYear_ID, vQuarter, vMonth_Name, vWeekday_Name, vMonth_Num, );
vDate_ID = to_date(vDate_ID,'DD/MM/YYYY')+1
END LOOP;
END;
我必须使用 While 循环而不是 For。
提前致谢。
【问题讨论】:
-
“不起作用”并不是特别有用。你有错误吗?如果是这样,什么错误?
-
你有一个尾随逗号 - " vMonth_Num, );"顺便说一句,您的声誉 > 1,所以我希望您知道如何提出正确的问题。
-
要跟进 OldProgrammer 的评论,请在发布有错误的问题时至少包含错误消息。在 Oracle 中,错误会告诉您行号,并且应该很容易识别结尾的逗号和缺少的分号
vDate_ID = to_date(vDate_ID,'DD/MM/YYYY')+1。请在提出问题之前尝试自己解决此问题。 -
我没有收到任何错误信息,它只是挂在那里,这就是为什么我没有在我的问题中包含任何信息,很抱歉给您带来不便。
标签: sql oracle calendar etl business-intelligence