我正在尝试使用 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;