Database 创建语句级触发器时发生编译错误
我尝试使用语句级触发器,而不是行级触发器 我一辈子都想不出如何让这个触发器在没有编译错误的情况下工作。有什么特别明显的我做错了吗?我已经测试了select语句以查找计数,它运行良好Database 创建语句级触发器时发生编译错误,database,database-trigger,Database,Database Trigger,我尝试使用语句级触发器,而不是行级触发器 我一辈子都想不出如何让这个触发器在没有编译错误的情况下工作。有什么特别明显的我做错了吗?我已经测试了select语句以查找计数,它运行良好 CREATE OR REPLACE TRIGGER bustaxi AFTER INSERT ON BUS DECLARE var_count NUMBER; BEGIN var_count := (SELECT COUNT(L#) FROM (SELECT L# FROM BUS INTERSECT
CREATE OR REPLACE TRIGGER bustaxi
AFTER INSERT ON BUS
DECLARE
var_count NUMBER;
BEGIN
var_count := (SELECT COUNT(L#)
FROM (SELECT L# FROM BUS
INTERSECT
SELECT L# FROM TAXI));
IF (var_count > 0) THEN
RAISE_APPLICATION_ERROR(-29500, 'Already drives a taxi!');
END IF;
END;
/
我设法使它工作起来。select语句是单独工作的,但像这样使用时,我需要使用“INTO”语句。此外,RAISE_应用程序_错误的数字超出范围。需要介于-20000和-20999之间
CREATE OR REPLACE TRIGGER bustaxi
AFTER INSERT ON BUS
DECLARE
var_count NUMBER;
BEGIN
SELECT COUNT(L#) INTO var_count
FROM (SELECT L# FROM BUS
INTERSECT
SELECT L# FROM TAXI);
IF (var_count > 0) THEN
RAISE_APPLICATION_ERROR(-20001, 'Already drives a taxi!');
END IF;
END;
/