Я загружаю данные через утилиты Oracle Apex, используя таблицу данных.Значение новой переменной на триггере не меняется, на plsql
Я хочу создать триггер, который проверяет значение на таблице из загруженных данных, а затем изменяет его в зависимости от того, что он получает.
В таблице 4 колонки: идентификатор, имя, адрес электронной почты, тип
Данные для загрузки что-то вроде этого: имя, адрес электронной почты, тип
Теперь мой триггер:
create or replace TRIGGER BI_USER
before insert ON USER
for each row
declare
begin
if :NEW.ID is null then
select USERID_SEQ.nextval into :NEW.ID from dual;
end if;
:NEW.TYPE := 'something else';
end;
Идентификатор отлично работает, он принимает число из последовательности, но: new.type не работает, он не изменяется. Я также запускаю SQL-вставку отдельно и то же самое происходит.
EDIT: типа new.type является символом (1), я написал, как это только для тестирования пока он не меняется ... ааа Я расстраивать себя, он выдает ошибку сразу после чтения данных и никогда не запускает триггер.
То, что я пытался сделать то, что он будет иметь имя столбца TYPE, и поместить идентификатор из этой таблицы в NEW.type
Есть ли способ, чтобы изменить новый тип?
Как в стороне, в 11g, я думаю, вы можете просто сделать ': NEW.id: = userid_seq.NEXTVAL;'. Не нужно выбирать. – eaolson
Вы уверены, что срабатывает триггер? –
@JeffreyKemp он не срабатывает, он выдает ошибку, как только он считывает данные, из-за неправильного типа – Warer