我正在尝试使用Oracle PL / SQL创建一个函数,该函数将当前日期存储到变量中。该函数将在触发器内调用。触发器(以及其他内容)将此变量插入到已创建的新表中。我的代码符合并运行没有错误,但它不起作用。什么都没发生。触发器是一个ON DELETE触发器,所以当我从原始表中删除一行时,它就会停留。我错过了什么线索?谢谢。
功能:
CREATE OR REPLACE FUNCTION get_date (i_stdid archive_student.stdid%TYPE)
RETURN date
AS
v_date DATE;
BEGIN
SELECT CURRENT_DATE INTO v_date FROM DUAL;
RETURN v_date;
END;
触发器内的函数调用:
CREATE OR REPLACE TRIGGER ARCHIVE_DELETED_STUDENT
AFTER DELETE ON STUDENT
FOR EACH ROW
DECLARE
v_date archive_student.change_date%TYPE;
BEGIN
-- other if statements here that are working properly
v_date := get_date(:old.stdid);
INSERT INTO archive_student (change_date) VALUES (v_date);
END;