Можно ли заставить Oracle PL / SQL триггер как функцию и пакет? - PullRequest
0 голосов
/ 25 мая 2018

У меня есть две идентичные таблицы и для копирования данных из основной таблицы (Таблица 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), нужно ли сначала урезать резервную таблицу?Так что дублирующие значения не вставляются (при условии, что в основной таблице нет дубликатов).

Технически загружаю данные в основную таблицу, а триггер вставки вставляет дубликаты в таблицу резервных копий.Не уверен, как избежать этого сценария.

Извините, если задаю слишком много вопросов, просто не могу найти лучший способ достижения цели.

Ценю любую помощь.

Спасибо,
Рича

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...