【发布时间】:2019-12-16 23:36:49
【问题描述】:
Oracle 顶点,PL_Sql。 这是我的触发器:
CREATE OR REPLACE TRIGGER NoMoreThanOneHorse
BEFORE INSERT OR UPDATE OF Jockey_ID
ON Horses
FOR EACH ROW
DECLARE
NumOfHorsesForJockey NUMBER(4);
BEGIN
SELECT COUNT(*) INTO NumOfHorsesForJockey FROM Horses
WHERE Jockey_ID = :NEW.Jockey_ID AND Horse_ID <> :NEW.Horse_ID;
IF NumOfHorsesForJockey > 0
THEN RAISE_APPLICATION_ERROR (-20445, 'Нельзя закрепить за лошадью уже занятого жокея!');
END IF;
END NoMoreThanOneHorse;
但每次我尝试创建它时都会出现此错误:ORA-24344:编译错误 ORA-06512 成功。我想这是因为语法不好
【问题讨论】:
-
添加显示错误;在您的 pl/sql 块的末尾。它将在结果页面上显示确切的错误。
-
@Novice_Techie,我知道为什么,但它没有显示任何错误,只有我之前描述过的一个
-
尝试使用END;而不是 END NoMoreThanOneHorse;在最后一行。
-
@Novice_Techie,同样的错误:c