sql - 编译错误触发
问题描述
我不知道为什么这个触发器失败了。我有一个 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 中设置拒绝的日期时间。
解决方案
你有
FROM clubs WHERE club = :NEW.club
^^^^
但是您的 clubs 表没有名为 club 的列
推荐阅读
- java - 如何在android studio中删除一个java类?
- wso2 - WSO2 APIM 如何更改密钥管理器以试用控制台
- react-navigation - 从名称中获取到 Screen 的路径,以与 useLinkProps 一起使用
- python - Python:清除输出
- node.js - Intellij Ultimate - 引擎“节点”与此模块不兼容。预期版本 ">= 14.15.4"。得到“12.18.3”
- python - Python,Pycharm - os.environ 中缺少环境变量
- javascript - 从选择框中插入不存在的数据
- python-3.8 - 按数字计算数字在列表编号中重复的次数
- facebook - 是否允许在开发模式下使用从 Instagram 基本显示 API 应用程序检索到的数据用于生产目的?
- javascript - innerHTML 删除图像标签的右斜线