oracle中带case的触发器
我在oracle中创建触发器时遇到问题,我有一个表“Tickets”,其中有字段“Price”和“Type”。我想做一个触发器,根据票的类型(正常/降低)增加价格 我正在使用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"
案例
,但它根本不起作用。这是我的密码:
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;
它起作用了!谢谢!请再试一次,但请使用单引号(')而不是双引号(“),它可以工作!非常感谢!请再试一次,但请使用单引号(')而不是双引号(“)