сравнение для оператора if имеет основную проблему , которая может быть:
if <some condition> = <other condition> then
:new.empuserid := empid_seq.nextval;
end if;
И тогда вы можете попробовать следующее:
Поскольку есть только один столбец-кандидаттак как emp user id
- это первый столбец таблицы, это понятно из оператора вставки, в котором нет списка столбцов для таблицы empuser
, а затем кажется, что вы пытаетесь установить emp user id
по порядку двумя способами
Избавьтесь от одного из них:
удалите
:new.empuserid.nextval into :new.empuserid from dual;
, то есть удалите триггер.
или
empid_seq.nextval,
внутри оператора вставки и передачи в триггер как
:new.empuserid := empid_seq.nextval;
путем явного перечисления всех столбцов, кроме empuserid
в операторе вставки как INSERT INTO empuser(col2,col3...) VALUES
.Преобразуйте эти операторы вставки как
INSERT INTO empuser
SELECT empid_seq.nextval, 'James', 'Kirk', '+447911123456', '401', '203',
messageid
FROM message
WHERE messageid = '2101'