首页 > 解决方案 > 编译错误触发

问题描述

我不知道为什么这个触发器失败了。我有一个 Oracle 11G 数据库。错误是:警告:使用编译错误创建触发器

CREATE OR REPLACE TRIGGER application
BEFORE INSERT ON candidates
FOR EACH ROW 
DECLARE clubstate CHAR(1);
BEGIN
    SELECT open INTO clubstate FROM clubs WHERE club = :NEW.club;
    IF clubstate = 'C'
        THEN 
            :NEW.rej_date := SYSDATE;
    END IF;
END application;
/

我的桌子是

"CANDIDATES(nick, club, member*, type, req_date, req_msg, rej_date*, rej_msg*)"
"CLUBS (name, founder*, cre_date, end_date*, slogan, open)"

编辑:我应该说我想做什么,

我尝试的是当在候选人中“插入”时,触发器会检查俱乐部是否开放。如果俱乐部关闭,那么它将在 rej_date 中设置拒绝的日期时间。

标签: sqloracle

解决方案


你有

FROM clubs WHERE club = :NEW.club
                 ^^^^

但是您的 clubs 表没有名为 club 的列


推荐阅读