在预言机中用大小写触发



我在oracle中创建触发器时遇到问题,我有一个表格"票证",其中有"价格"和"类型"字段。我想做一个触发器,根据机票类型(正常/减少)增加价格。

我正在使用CASE但它根本不起作用。这是我的代码:

CREATE OR REPLACE TRIGGER TYPE_BIR
BEFORE INSERT ON Tickets
FOR EACH ROW
BEGIN
    CASE
      WHEN type = "normal" THEN :new.price := "15"
      WHEN type = "reduced" THEN :new.price := "12"
END;

当你说"它不起作用"时,你的意思是它不编译还是你的意思是它没有做你想做的事情?

尝试

CREATE OR REPLACE TRIGGER TYPE_BIR
BEFORE INSERT ON Tickets
FOR EACH ROW
BEGIN
    IF :new.type = 'normal' THEN 
      :new.price := 15 ;
    ELSIF :new.type = 'reduced' THEN 
      :new.price := 12 ;
    END IF ;
END;

我假设价格是数字

或者如果你想使用CASE...

CREATE OR REPLACE TRIGGER TYPE_BIR
BEFORE INSERT ON Tickets
FOR EACH ROW
BEGIN
    CASE :new.type
      WHEN 'normal' THEN :new.price := 15 ;
      WHEN 'reduced' THEN :new.price := 12 ;
    END CASE ;
END;

最新更新