Моя задача довольно проста, допустим, у меня есть таблица с 3 столбцами, то есть temp (ids, name_c, UID_c), и у меня есть первые два значения столбца, а третий столбец - нулевая. То, что я хочу сделать, - это когда все эти два значения вставлены, значение третьего столбца должно быть обновлено (после вставки) с новым значением. т. е. конкатенация обоих значений.Обновление значения другого столбца при вставке в oracle
Для примера.
insert into temp(ids, name_c) values(did.nextval,'Andrew');
Результат должен быть
1 Andrew Andrew_1
Так я использую триггер для этой цели
create or replace trigger triggerDemo
after INSERT
on temp
for each row
declare
/* pragma autonomous_transaction;*/
user_name varchar2(50);
current_val number;
begin
select did.currval into current_val from dual; /* did is sequence */
select names into user_name from temp where ids = current_val;
update temp set uid_c = user_name||'_'||ids where ids = current_val;
end;
Когда я вставив значения я получаю эту ошибку
01403. 00000 - "no data found"
*Cause: No data was found from the objects.
*Action: There was no data from the objects which may be due to end of fetch.