是否可以将Oracle PL / SQL触发器作为函数和包进行?

时间:2018-05-25 15:08:21

标签: oracle plsql

我有两个相同的表并将数据从主表(表1)复制到备份表(表2),我有以下触发器:

CREATE OR REPLACE TRIGGER copy_Table1_to_Table2 AFTER INSERT ON table1
FOR EACH ROW
BEGIN
INSERT INTO TABLE2 
   (col1, col2, ..., coln) 
VALUES 
   (:NEW.col1, :NEW.col2, ..., :NEW.coln);
END;

问题1: 这适用于将数据从一个表复制到另一个表。如果我必须将20个不同表中的数据复制到20个备份表(相同),是否可以使用参数作为表名和列名并使用相同的触发器而不是编写20个不同的触发器的包或函数?

如果是,想知道代码的外观。感谢任何帮助。

问题2: 要将备份表(表2)作为主表(表1)的克隆,我是否必须先截断备份表?这样就不会插入重复值(假设主表没有重复项)。

从技术上讲,我将批量数据加载到主表中,插入触发器将重复数据插入到备份表中。不确定如何避免这种情况。

很抱歉,如果问了太多问题,我们就无法找到实现目标的最佳途径。

感谢任何帮助。

谢谢,
Richa

0 个答案:

没有答案