вставка обработки оракула перед оператором удаления - PullRequest
0 голосов
/ 07 ноября 2018

Каков наилучший подход к обработке вставки данных перед их удалением, как я могу убедиться, что после вставки данных из таблицы1 в таблицу2 я не потеряю их, если хочу удалить данные, вставленные из таблицы1.

Я работаю над процедурой, и до сих пор я придумал этот процесс, который я не уверен, что это лучший способ защитить данные, которые я вставляю.

SAVEPOINT start_transaction;
           stmt_ins:= 'INSERT into ' || n_tab2 || ' SELECT * FROM ' || n_tab || ' where criado_em< :dt';  
           EXECUTE IMMEDIATE stmt_ins USING sysdate;
           dbms_output.put_line('value '||SQL%ROWCOUNT);
           DBMS_OUTPUT.PUT_LINE(stmt_ins);
         --  siima_logs_bck.INSE_LOG(1,'TESTE INSERIR','INS_LOGS','2', 'testes insert log');

EXCEPTION 
           WHEN DUP_VAL_ON_INDEX THEN
           ROLLBACK TO start_transaction;


                   stmt_del:= 'DELETE FROM ' || n_tab || ' WHERE criado_em<:dt';

         DBMS_OUTPUT.PUT_LINE(stmt_del);
         EXECUTE IMMEDIATE stmt_del USING SYSDATE;

В основном я получаю данные из вкладки tab1 в tab2 в соответствии с датой ее создания. Что я могу сделать, чтобы не потерять мою вставку и потерять данные, которые я удаляю?

приветствуются любые советы / рекомендации, которые помогут улучшить мой процесс, спасибо

...