【发布时间】:2021-03-13 17:07:22
【问题描述】:
我尝试在更新表“测试”时创建触发器,以确保列中的值不大于来自不同表的另一个值。但我在 Oracle Apex 上收到此错误:ORA-24344: success with compilation error
'test' 是一个表,'chestionar' 是第二个表,所以当我在 'punctaj' 中插入一个大于 'punctaj_max' 的值时,我想启动该错误。并且两个表的 id 必须相同。我应该修改什么?
这是我的代码:
CREATE OR REPLACE trigger trg_a
BEFORE UPDATE on test
begin
if test.punctaj > chestionar.punctaj_max and test.id=chestionar.id then
raise_application_error(234,'error, the value is grater than maximum of that id');
end if;
end;
【问题讨论】:
-
if test.punctaj > chestionar.punctaj_max你觉得,服务器应该从test和chestionar表的哪一行取值?使用 SELECT INTO 然后检查输出。
标签: sql oracle triggers sql-update oracle-apex