我想写一个触发器,它基本上在另一个表上创建一个表时更新一个表。PLS-00049:坏绑定变量'NEW.REQUEST_DATETIME'问题
CREATE OR REPLACE TRIGGER "DTISCDB_OWNER"."REQUEST_CONTEXT_TR"
AFTER INSERT OR UPDATE ON REQUEST_CONTEXT
FOR EACH ROW
BEGIN
:NEW.REQUEST_DATETIME := SYSDATE;
:NEW.ID := TRUNC(DBMS_RANDOM.VALUE(100000000000000000000000000000000000,999999999999999999999999999999999999));
SELECT bre_conditions_seq.NEXTVAL INTO :OLD.seq_number FROM dual;
SELECT REQUEST_CONTEXT.CURRENT_STATE INTO :NEW.STATE FROM REQUEST_CONTEXT;
SELECT REQUEST_CONTEXT.REQUEST_ID INTO :NEW.REQUEST_ID FROM REQUEST_CONTEXT;
INSERT INTO REQUEST_LIFECYCLES(ID,SEQ_NUMBER,STATE,REQUEST_ID,REQUEST_DATETIME)
VALUES(:NEW.ID,:NEW.seq_number,:NEW.STATE,:NEW.REQUEST_ID,:NEW.REQUEST_DATETIME);
END;
该错误似乎暗示'request_context'中没有'request_datetime'。在那儿?一旦你解决了这个问题,你就不能改变':old.seq_number',所以没有任何意义。你不能从'request_context'中选择。为什么你会生成一个随机数而不是仅仅使用一个序列来生成':new.id'? –
您是否试图使用':NEW'来引用您要插入的表格中的列,而不是触发器所针对的表格?你可以直接在'values'子句中使用'sysdate'。然而':OLD'参考仍然令人困惑。你似乎对什么新旧代表感到困惑。 –