У меня есть триггер перед вставкой, и я пытаюсь определить его для вставки значений и нулевых значений, когда это необходимо.
Я пытаюсь что-то вроде этого
CREATE OR REPLACE TRIGGER InsertPrezimeRuk
BEFORE INSERT ON RADNICI
FOR EACH ROW
DECLARE
I_novo_pr varchar2(50);
BEGIN
SELECT prezime INTO I_novo_pr
FROM RADNICI
WHERE jmbg= :new.ruk_jmbg;
:new.prezime_rukovodioca:= I_novo_pr;
END;
И когда я пытаюсь вставить некоторые нулевые значения, он возвращает ошибку, что данные не найдены.
Но я хочу установить это, когда данные не обнаружены, чтобы просто передать нулевое значение в таблицу. И я пробовал что-то вроде этого
CREATE OR REPLACE TRIGGER InsertPrezimeRuk
BEFORE INSERT ON RADNICI
FOR EACH ROW
DECLARE
I_novo_pr varchar2(50);
BEGIN
IF I_novo_pr is null
THEN :new.prezime_rukovodioca:= null;
END IF;
SELECT prezime INTO I_novo_pr
FROM RADNICI
WHERE jmbg= :new.ruk_jmbg;
:new.prezime_rukovodioca:= I_novo_pr;
END;
Но это все еще не работает.
Это вообще возможно? Если это так, пожалуйста, помогите.
jmbg
уникальным столбцом? Если нет, то что произойдет, если ваш запрос вернет более одной строки? Вы также должны учитывать ошибку too_many_rows. - person Boneist   schedule 26.09.2017