最近接到一个任务要根据一个表来转移另一个表的数据到第三个表。想了想,用决定用触发器+存储过程的方式来做。有些时间没有写存储过程和触发器了,查了一下资料,确定了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 ......) ISvar1 ;var2 ;......BEGINPL/SQL_BLOCK END proc_name
由于还有在两个不同的表中转移数据,所以数据都可以 还有用到两个表复制语句,oracle提供了 SELECT INTO 和 INSERT INTO SELECT ,UPDATE SELECT语句用于表复制操作。
折腾了几下,任务完成了。