У меня есть курсор для вставки данных сотрудника из временной таблицы в основную таблицу.У меня есть сценарий, в котором сначала он проверит, существует ли идентификатор отдела временной таблицы в основной таблице отдела;если DeptId
не существует, не вставляйте сотрудника и не обновляйте столбец ERR_MSG во временной таблице.Я обрабатываю исключение внутри условия if после оператора INSERT, но оно выдает мне ошибку типа
Обнаружен символ 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это дает ошибку