oracle中的触发器规范无效

时间:2014-12-15 16:19:02

标签: oracle plsql triggers

DROP TABLE a CASCADE CONSTRAINTS;

CREATE TABLE a(
    cyear VARCHAR2(4));

CREATE TRIGGER current_year
BEFORE INSERT ON  cyear
    FOR EACH ROW SET NEW.year = year(NOW());

修改

我试过了,

CREATE TRIGGER current_year
  BEFORE INSERT ON a
  FOR EACH ROW
BEGIN
  :NEW.cyear = TO_CHAR(SYSDATE, 'YYYY');
END current_year;

我一直收到PLS-00103错误。

1 个答案:

答案 0 :(得分:1)

  1. 在表格上创建触发器,而不是在列
  2. 上创建
  3. 在Oracle变量中未分配SET
  4. Oracle
  5. 中没有名为NOW的内置函数
  6. NEWOLD只能在WHEN子句中访问;在其他地方,它们应该以冒号(:NEW:OLD
  7. 开头 最后错过了
  8. END个关键字(以及触发器正文开头的BEGIN