#oracle #sqlplus
#Oracle #sqlplus
Вопрос:
Можно ли установить триггер для установки значения новой строки как результата инструкции select? Мой текущий синтаксис выглядит следующим образом, и он просто не работает:
CREATE TRIGGER "BRAND_NEW_TRIGGER"
BEFORE INSERT ON my_table
FOR EACH ROW
BEGIN
:NEW.column_one := (SELECT details_col FROM other_table WHERE property_id = :NEW.property_id);
END;
/
Я подделал детали приведенного выше кода, чтобы защитить безопасность моей компании, я знаю, что приведенный выше код не имеет особого смысла, но есть веская причина, по которой мне нужно извлекать и упорядочивать данные таким образом.
Ответ №1:
Вы можете выполнить select into
select ot.details_col
into :new.column_one
from other_table ot
where ot.property_id = :new.property_id;
Конечно, я бы сильно сомневался в модели данных, если это имеет смысл. Это сильно подразумевает, что у вас есть модель данных, нуждающаяся в некоторой нормализации.