我想创建一个触发器,将join属性设置为当前年份。这就是我的工作:
CREATE OR REPLACE TRIGGER foo2
BEFORE INSERT ON memberof
FOR EACH ROW
BEGIN :new.joined := 2012;
END;
我想将2012更改为以下代码,但不断收到编译错误。完成此任务的正确语法是什么?
select extract(year from sysdate) from dual
答案 0 :(得分:2)
这应该可以解决问题:
CREATE OR REPLACE TRIGGER foo2
BEFORE INSERT ON memberof
FOR EACH ROW
BEGIN
:new.joined := to_char(sysdate,'YYYY');
END;
有关详细信息,请参阅此处:http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm
在这里:http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions183.htm
BTW OMG小马是正确的,这通常应该使用默认值来完成,这可以采用类似
的表达式to_char(sysdate,'YYYY')
。