【问题标题】:How to move/copy data from one table to another using stored procedure in oracle如何使用oracle中的存储过程将数据从一个表移动/复制到另一个表
【发布时间】:2014-11-13 18:51:02
【问题描述】:

我有一对表 tbltbl_backup

现在 'tbl' 是包含大量数据的主表 'tbl_backup' 是具有完全相同字段的表 现在我想使用存储过程将所有行从“tbl”复制到“tbl_backup”。我想对许多这样的表做同样的事情,因此我想使用存储过程。

我不擅长 PL/SQL,所以我需要一些帮助。

谢谢!

【问题讨论】:

  • 如果您需要备份这些表,请使用数据泵导出实用程序 (expdp)。根据您提供的信息,我认为没有理由以这种方式实施备份和恢复策略,尤其是使用 PL/SQL。使用适当的工具:expdp/impdprman。如果您需要较快地恢复数据,请增加undo_retention 参数的值并使用flashback query

标签: oracle plsql oracle11g


【解决方案1】:
create or replace procedure backup_table
    ( i_source_table in varchar2
    , i_target_table in varchar2 )
    authid current_user
is
begin
    execute immediate '
        insert --+ append
            into '||sys.dbms_assert.enquote_name(sys.dbms_assert.sql_object_name(i_target_table))||'
        select *
        from '||sys.dbms_assert.enquote_name(sys.dbms_assert.sql_object_name(i_source_table))
    ;
end;

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2010-12-22
  • 1970-01-01
  • 1970-01-01
  • 2018-07-04
  • 1970-01-01
  • 2011-03-16
  • 2021-09-26
  • 1970-01-01
相关资源
最近更新 更多