oracle触发器的写法有哪几种
Oracle触发器的写法有三种:行级触发器、语句级触发器和嵌套表触发器。
1. 行级触发器(Row-Level Triggers):在每行受影响的情况下触发,对每行的操作都会触发一次,可以在触发器中援用`NEW`和`OLD`伪记录。
```sql
CREATE OR REPLACE TRIGGER trigger_name
BEFORE INSERT OR UPDATE OR DELETE ON table_name
FOR EACH ROW
BEGIN
-- 触发器逻辑
END;
/
```
2. 语句级触发器(Statement-Level Triggers):在语句履行的情况下触发,对一次语句中的所有行操作只触发一次,不能援用`NEW`和`OLD`伪记录。
```sql
CREATE OR REPLACE TRIGGER trigger_name
BEFORE INSERT OR UPDATE OR DELETE ON table_name
BEGIN
-- 触发器逻辑
END;
/
```
3. 嵌套表触发器(Nested Table Triggers):用于处理嵌套表的操作,可以在嵌套表的操作中触发,可以援用`NEW`和`OLD`伪记录。
```sql
CREATE OR REPLACE TRIGGER trigger_name
BEFORE INSERT OR UPDATE OR DELETE ON table_name
FOR EACH ROW
DECLARE
TYPE nested_table_type IS TABLE OF table_name.column_name%TYPE;
nested_table nested_table_type;
BEGIN
-- 触发器逻辑
END;
/
```
以上是Oracle触发器的三种常见写法,根据实际需求选择适合的触发器类型进行编写。
TOP