甲骨文处理删除语句前插入

时间:2018-11-07 11:47:07

标签: sql oracle plsql sql-insert sql-delete

在删除数据之前插入数据的最佳方法是什么,如何确保将表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中获取数据。我该怎么做才能避免插入失败并丢失我删除的数据?

任何有助于改善我的流程的技巧/指南都将受到赞赏,谢谢

0 个答案:

没有答案