我正在尝试验证我的财务年度字段,因此该值不能大于当前日期,财务年度数据类型是数字。我试图将存储攻击日期的值与用户在财务年度字段中输入的值进行比较,我知道攻击字段中的数据是有效的,因为我正在使用数据选择器并且我已经验证了它的值选择不能大于当前系统日期。
第3行出错:PLS-00103:当遇到以下情况之一时遇到符号“FROM”:. (),*%& - + / at mod余数rem和或|| multiset符号“。在”FROM“之前插入以继续。
CREATE OR REPLACE TRIGGER invalid_Year
BEFORE INSERT OR UPDATE OF Financial_Year ON Area_Offence
FOR EACH ROW
BEGIN
IF(:NEW.Financial_Year > to_char(Max(Offence_Date), 'YYYY') FROM Offence )THEN
dbms_output.put_line('Invalid Year entered');
raise_application_error(-20001, 'Invalid Year entered');
END IF;
END;
答案 0 :(得分:0)
使用SELECT
:
IF (SELECT :NEW.Financial_Year > to_char(Max(Offence_Date), 'YYYY') FROM Offence) THEN
dbms_output.put_line('Invalid Year entered');
raise_application_error(-20001, 'Invalid Year entered');\
END IF;
答案 1 :(得分:0)
我建议如下:
CREATE OR REPLACE TRIGGER invalid_Year
BEFORE INSERT OR UPDATE OF Financial_Year ON Area_Offence
FOR EACH ROW
BEGIN
IF :NEW.Financial_Year > (SELECT to_char(Max(Offence_Date), 'YYYY') FROM Offence) THEN
dbms_output.put_line('Invalid Year entered');
raise_application_error(-20001, 'Invalid Year entered');
END IF;
END invalid_Year;
分享并享受。