plsql中if条件内部的异常

时间:2018-11-17 07:29:12

标签: oracle plsql

我有一个游标,用于将员工数据从临时表插入到主表。我有一个场景,首先将检查主部门表中是否存在临时表部门ID;如果DeptId不存在,则不要插入employee并更新临时表中的ERR_MSG列。我在INSERT语句后的if条件中处理异常,但这给了我

这样的错误
  

期望以下其中一项时遇到符号EXCEPTION:开始,结束,大小写,其他...

示例代码如下:-

DECLARE
 --var list

    BEGIN
     OPEN ltempCur For

         -- here i am selecting cols from temp table in variables

     LOOP
        FETCH ltempCur 
     INTO 
       --all the declared variables here
     EXIT
    WHEN ltempCur %NOTFOUND;
    BEGIN

     --select statement for checking if employee record exist in table

     IF(lExist == 0)  --if emloyee record not exist
     THEN

       begin
         --check if dept exist in dept table if not exist then i have assigned zero to deptid variable in NO_DATA_FOUND exception
       end;

       IF(vardeptid > 0)  --if condition for which i have mentioned in description

       --Insert statement for employee

       EXCEPTION
       WHEN OTHERS
       THEN
           --handling exp
       COMMIT;
    END;         

       END IF; -- dept id check if end

     --end loop -- close cursor

在上面的代码中,如果我删除了deptid IF ELSE条件,那么它工作正常,但是在该IF条件下,它给出了错误

1 个答案:

答案 0 :(得分:0)

如果有两个IF子句,则有一个结尾。可能您尚未结束变量lExists的IF子句。