[英]PL SQL IF-THEN-ELSE block
I have this piece of code that is embedded in my sql. 我有这段代码嵌入在我的sql中。 For some reason, I see that every time my last ELSE block is getting executed.
由于某种原因,我看到每次我的最后一个ELSE块都被执行时。 Here is my code:
这是我的代码:
IF REGEXP_LIKE (UPPER(V_TEMP_DEPT_1),
'DEP|DPT$|ABT|DIP.|DIPART|AFDEL|AVDEL|AVD.|DIV|PGRD|PGP|PPG|FAC|AMU|LAB|WING|
UNIT|SERV|AFT|CENT|CLIN|KLIN|ETHICS COM|EC|IRB') THEN
V_DEPT_N := V_TEMP_DEPT_1;
V_ADDR_LINE1:= NULL;
ELSE
IF REGEXP_LIKE (UPPER(V_TEMP_DEPT_2),
'DEP|DPT$|ABT|DIP.|DIPART|AFDEL|AVDEL|AVD.|DIV|PGRD|PGP|PPG|FAC|AMU|LAB|WING|
UNIT|SERV|AFT|CENT|CLIN|KLIN|ETHICS COM|EC|IRB') THEN
V_DEPT_N := V_TEMP_DEPT_2;
V_ADDR_LINE2:= NULL;
ELSE
IF REGEXP_LIKE (UPPER(V_TEMP_DEPT_3),
'DEP|DPT$|ABT|DIP.|DIPART|AFDEL|AVDEL|AVD.|DIV|PGRD|PGP|PPG|FAC|AMU|LAB|WING|
UNIT|SERV|AFT|CENT|CLIN|KLIN|ETHICS COM|EC|IRB') THEN
V_DEPT_N := V_TEMP_DEPT_3;
V_ADDR_LINE3:= NULL;
ELSE
IF REGEXP_LIKE (UPPER(V_TEMP_DEPT_4),
'DEP|DPT$|ABT|DIP.|DIPART|AFDEL|AVDEL|AVD.|DIV|PGRD|PGP|PPG|FAC|AMU|LAB|WING|
UNIT|SERV|AFT|CENT|CLIN|KLIN|ETHICS COM|EC|IRB') THEN
V_DEPT_N := V_TEMP_DEPT_4;
V_ADDR_LINE4:= NULL;
ELSE
-- The below line always gets executed.
V_DEPT_N:= NULL;
END IF;
END IF;
END IF;
END IF;
Any ideas what am I doing wrong? 有什么想法我做错了吗?
IF REGEXP_LIKE (UPPER(V_TEMP_DEPT_1),
'DEP|DPT$|ABT|DIP.|DIPART|AFDEL|AVDEL|AVD.|DIV|PGRD|PGP|PPG|FAC|AMU|LAB|WING|
UNIT|SERV|AFT|CENT|CLIN|KLIN|ETHICS COM|EC|IRB') THEN
V_DEPT_N := V_TEMP_DEPT_1;
V_ADDR_LINE1:= NULL;
ELSIF REGEXP_LIKE (UPPER(V_TEMP_DEPT_2),
'DEP|DPT$|ABT|DIP.|DIPART|AFDEL|AVDEL|AVD.|DIV|PGRD|PGP|PPG|FAC|AMU|LAB|WING|
UNIT|SERV|AFT|CENT|CLIN|KLIN|ETHICS COM|EC|IRB') THEN
V_DEPT_N := V_TEMP_DEPT_2;
V_ADDR_LINE2:= NULL;
ELSIF REGEXP_LIKE (UPPER(V_TEMP_DEPT_3),
'DEP|DPT$|ABT|DIP.|DIPART|AFDEL|AVDEL|AVD.|DIV|PGRD|PGP|PPG|FAC|AMU|LAB|WING|
UNIT|SERV|AFT|CENT|CLIN|KLIN|ETHICS COM|EC|IRB') THEN
V_DEPT_N := V_TEMP_DEPT_3;
V_ADDR_LINE3:= NULL;
ELSIF REGEXP_LIKE (UPPER(V_TEMP_DEPT_4),
'DEP|DPT$|ABT|DIP.|DIPART|AFDEL|AVDEL|AVD.|DIV|PGRD|PGP|PPG|FAC|AMU|LAB|WING|
UNIT|SERV|AFT|CENT|CLIN|KLIN|ETHICS COM|EC|IRB') THEN
V_DEPT_N := V_TEMP_DEPT_4;
V_ADDR_LINE4:= NULL;
ELSE
-- Now this works!!
V_DEPT_N:= NULL;
END IF;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.