[英]ORACLE PL SQL PROCEDURE WITH MULTIPLE IF
在PL SQL上声明多个IF
是否正确,如以下代码所示。 我刚发现这个错误-
程序包主体有问题...找不到被调用的程序单元
PROCEDURE CONSULTA_EVALCT(VAR_R VARCHAR2,VAR_A VARCHAR2, IO_CURSOR OUT T_CURSOR)
IS
V_CURSOR T_CURSOR;
BEGIN
IF(VAR_R='0' AND VAR_A='0')THEN
OPEN V_CURSOR FOR
SELECT *from table1;
IO_CURSOR := V_CURSOR;
END IF;
IF(VAR_R='0' AND VAR_A<>0) THEN
OPEN V_CURSOR FOR
SELECT *FROM table2;
IO_CURSOR := V_CURSOR;
END IF;
IF(VAR_R<>'0' AND VAR_A<>0) THEN
OPEN V_CURSOR FOR
SELECT *FROM table3;
IO_CURSOR := V_CURSOR;
END IF;
END CONSULTA_EVALCT;
首先,您是否将过程添加到Package头?并且正确满足条件“如果仅想使用IF”的方法如下:
IF(VAR_R='0') THEN
IF (A= '0')
OPEN V_CURSOR FOR SELECT *from table1;
--..
ELSE
OPEN V_CURSOR FOR SELECT *FROM table2;
--..
END IF;
ELSE IF (VAR_A<>0) THEN
OPEN V_CURSOR FOR SELECT *FROM table3;
--..
END IF;
--..
我建议在这种情况下使用CASE而不是多个
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.