oracle中带case的触发器

oracle中带case的触发器,oracle,plsql,triggers,case,Oracle,Plsql,Triggers,Case,我在oracle中创建触发器时遇到问题,我有一个表“Tickets”,其中有字段“Price”和“Type”。我想做一个触发器,根据票的类型(正常/降低)增加价格 我正在使用案例,但它根本不起作用。这是我的密码: CREATE OR REPLACE TRIGGER TYPE_BIR BEFORE INSERT ON Tickets FOR EACH ROW BEGIN CASE WHEN type = "normal" THEN :new.price := "15"

我在oracle中创建触发器时遇到问题,我有一个表“Tickets”,其中有字段“Price”和“Type”。我想做一个触发器,根据票的类型(正常/降低)增加价格

我正在使用
案例
,但它根本不起作用。这是我的密码:

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
    CASE :new.type
      WHEN 'normal' THEN :new.price := 15 ;
      WHEN 'reduced' THEN :new.price := 12 ;
    END CASE ;
END;
当你说“它不工作”时,你是说它不编译还是说它不做你想让它做的事

试一试

我假设价格是数字

或者如果你想使用用例

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;

它起作用了!谢谢!请再试一次,但请使用单引号(')而不是双引号(“),它可以工作!非常感谢!请再试一次,但请使用单引号(')而不是双引号(“)