oracle触发器和存储过程的格式
最近接到一个任务要根据一个表来转移另一个表的数据到第三个表。想了想,用决定用触发器+存储过程的方式来做。有些时间没有写存储过程和触发器了,查了一下资料,确定了oracle的触发器和存储过程的格式。
触发器的格式如下:
CREATE [OR REPLACE] TRIGGER trigger_name {BEFORE | AFTER } {INSERT | DELETE | UPDATE [OF column [, column …]]} [OR {INSERT | DELETE | UPDATE [OF column [, column …]]}...] ON [schema.]table_name | [schema.]view_name [REFERENCING {OLD [AS] old | NEW [AS] new| PARENT as parent}] [FOR EACH ROW ] [WHEN condition] PL/SQL_BLOCK | CALL procedure_name;
存储过程的格式如下:
CREATE OR REPLACE PROCEDURE proc_name ( Parameter1, Parameter2 ...... ) IS var1 ; var2 ; ...... BEGIN PL/SQL_BLOCK END proc_name
由于还有在两个不同的表中转移数据,所以数据都可以 还有用到两个表复制语句,oracle提供了 SELECT INTO 和 INSERT INTO SELECT ,UPDATE SELECT语句用于表复制操作。
折腾了几下,任务完成了。