我试图在pl/sql块中编写嵌套的IF.我该如何正确安排.
IF r1.CABLE_TYPE = "A" THEN
var_root = FC_CPSCBPR1.C_111_SCPSCBP
Run Code Online (Sandbox Code Playgroud)
逻辑我现在必须包括在内
If var_root is "TRUE" /*If the value is populated*/
THEN
IF ...
THEN
Elsif var_root is "FALSE" /*If the value is not found*/
THEN
Run Code Online (Sandbox Code Playgroud)
看看嵌套IF语句的这个例子.
你需要一个END IF结束每个.
Run Code Online (Sandbox Code Playgroud)DECLARE PROCEDURE p ( sales NUMBER, quota NUMBER, emp_id NUMBER ) IS bonus NUMBER := 0; BEGIN IF sales > (quota + 200) THEN bonus := (sales - quota)/4; IF whatever_else_you_like THEN do_something_here; END if; ELSE IF sales > quota THEN bonus := 50; ELSE bonus := 0; END IF; END IF; DBMS_OUTPUT.PUT_LINE('bonus = ' || bonus); UPDATE employees SET salary = salary + bonus WHERE employee_id = emp_id; END p; BEGIN p(10100, 10000, 120); p(10500, 10000, 121); p(9500, 10000, 122); END; /
您还可以根据需要使用尽可能多的ELSIF语句.例如.
DECLARE
PROCEDURE p (sales NUMBER)
IS
bonus NUMBER := 0;
BEGIN
IF sales > 50000 THEN
bonus := 1500;
ELSIF sales > 35000 THEN
bonus := 500;
ELSE
bonus := 100;
END IF;
DBMS_OUTPUT.PUT_LINE (
'Sales = ' || sales || ', bonus = ' || bonus || '.'
);
END p;
BEGIN
p(55000);
p(40000);
p(30000);
END;
/
Run Code Online (Sandbox Code Playgroud)