Sql 在Oracle中创建触发器

Sql 在Oracle中创建触发器,sql,oracle,triggers,Sql,Oracle,Triggers,我正在尝试在Oracle SQLPlus中创建触发器。触发器处理两个表: 用户{id、名称、状态} 产品{id、标题、价格、用户id、状态} 我希望在更新用户表时,条目的状态更改为2,用户提供的所有产品都将更改为I(对于非活动) 我得到错误ORA-04077:WHEN子句不能与表级触发器一起使用。但是如果没有when子句,我不知道该怎么做?您应该能够将它放入IF和END IF,而不是when中,因为您的when子句位于错误的位置。将它放在每行的后面,您应该都已设置好: CREATE OR REP

我正在尝试在Oracle SQLPlus中创建触发器。触发器处理两个表: 用户{id、名称、状态} 产品{id、标题、价格、用户id、状态}

我希望在更新用户表时,条目的状态更改为2,用户提供的所有产品都将更改为I(对于非活动)


我得到错误ORA-04077:WHEN子句不能与表级触发器一起使用。但是如果没有when子句,我不知道该怎么做?

您应该能够将它放入
IF
END IF
,而不是
when
中,因为您的
when
子句位于错误的位置。将它放在每行的
后面,您应该都已设置好:

CREATE OR REPLACE TRIGGER update_offering_status
BEFORE UPDATE ON users
FOR EACH ROW
WHEN (new.status = 2)
CREATE OR REPLACE TRIGGER update_offering_status
BEFORE UPDATE ON users
FOR EACH ROW
WHEN (new.status = 2)