/**********************************************************************
通用备份表脚本
共二个输入参数:参数2-1、参数2-2
把需要备份的数据源表结构解析出来,组合并创建结构相同的新表,最后把数据
源表的全部数据插入到建的目的表中.
注:对表结构的解析,只进行了三种数据类型的重构,即DATE/NUMBER/VARCHAR2
要作到真正通用,数据类型还再扩充完整。
**********************************************************************/
DECLARE
CURSOR tbl_struct_cur IS
SELECT *
FROM ALL_TAB_COLS
WHERE TABLE_NAME = UPPER('aaaa') --参数2-1:输入要备份的数据源表名
ORDER BY COLUMN_ID;
from_tbl varchar2(30) := 'aaaa'; --参数2-2:输入要备份的数据源表名
to_tbl VARCHAR2(30) := from_tbl||'_SWITCH_BK'; --备份目的表名 = 数据源表名||'_SWITCH_BK'
v_col VARCHAR2(2000) := ' ';
BEGIN
BEGIN
--重构列结构
FOR rec IN tbl_struct_cur
LOOP
IF rec.Data_type = 'DATE' THEN
v_col := (CASE v_col WHEN ' ' THEN ' ' ELSE v_col || ', ' END) || rec.COLUMN_NAME || ' DATE';
ELSIF rec.Data_type = 'NUMBER' THEN
v_col := (CASE v_col WHEN ' ' THEN ' ' ELSE v_col || ', ' END) || rec.COLUMN_NAME ||
(CASE nvl(rec.DATA_PRECISION, 0) WHEN 0 THEN ' NUMBER' ELSE ' NUMBER('||to_char(rec.DATA_PRECISION)||','||to_char(rec.DATA_SCALE) || ')' END);
ELSIF rec.Data_type = 'VARCHAR2' THEN
v_col := (CASE v_col WHEN ' ' THEN ' ' ELSE v_col || ', ' END) || rec.COLUMN_NAME || ' VARCHAR2('||to_char(rec.DATA_LENGTH) || ')';
END IF;
END LOOP;
--组合语句
v_col := 'CREATE TABLE ' || to_tbl || '(' || v_col || ')';
--建表
BEGIN
EXECUTE IMMEDIATE v_col;
EXCEPTION
WHEN OTHERS THEN
BEGIN
raise_application_error(-20000,'创建表时发生错误:'||chr(13)||SQLERRM);
END;
END;
--导出数据
BEGIN
EXECUTE IMMEDIATE 'INSERT INTO '|| to_tbl || ' SELECT * FROM '|| from_tbl;
EXCEPTION
WHEN OTHERS THEN
BEGIN
ROLLBACK;
raise_application_error(-20000,'导入数据时发生错误:'||chr(13)||SQLERRM);
END;
END;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
BEGIN
ROLLBACK;
raise_application_error(-20000,'发生错误:'||chr(13)||SQLERRM);
END;
END;
END;
Head.First.设计模式
分享到:
相关推荐
"Oracle备份数据导入导出工具"就是为了简化这一过程而设计的专业软件。 该工具的主要功能在于提供便捷的方式来备份和恢复Oracle数据库中的数据。在描述中提到,它具有两个显著特点: 1. **简单易用**:用户只需...
### Oracle 数据备份与恢复案例详解 #### 一、Oracle 数据备份概述 在Oracle数据库管理过程中,数据备份是一项至关重要的工作,它确保了在系统故障、人为错误或灾难性事件发生时能够快速有效地恢复数据,避免业务...
oracle数据备份工具,主要对oracle数据库进行自动备份
### Oracle备份与还原数据库知识点详解 #### 一、Oracle数据库备份方法概述 Oracle数据库提供了三种标准的备份方式:导出/导入(EXP/IMP)、热备份(Hot Backup)和冷备份(Cold Backup)。这些方法根据不同的场景...
为了确保数据的完整性和系统的可恢复性,制定一套全面且有效的Oracle备份与恢复策略是必不可少的。本文将深入解析一种典型的Oracle备份与恢复方案,包括方案设计、具体实施步骤以及故障恢复流程。 #### 备份方案...
因此,定期备份Oracle数据库是确保数据安全性的必要措施之一。备份不仅能够防止数据丢失,还能提高系统的整体可用性和稳定性。 ### 二、Oracle数据库备份方式概述 #### 1. 全量备份 全量备份是指备份整个数据库的...
"Oracle历史数据备份"这个话题,旨在探讨如何有效、安全地对Oracle数据库中的历史数据进行备份,以应对可能的数据丢失风险。 首先,我们来理解为什么需要备份历史数据。历史数据通常包含了系统的运行轨迹和重要信息...
Oracle的热备份通常利用RMAN(恢复管理器)来实现,它可以在线备份数据文件、控制文件,甚至可以执行增量备份。`oracle热备份步骤.txt`可能包含使用RMAN进行热备份的详细过程,如连接RMAN,设置目标数据库,执行备份...
2. 法规遵从:许多行业都有法规要求企业定期备份数据以确保业务连续性。 3. 灾难恢复:当遭遇自然灾害或大规模系统故障时,备份可以快速恢复服务,减少业务中断时间。 二、Oracle备份类型 1. 全备份:备份所有数据...
linux下oracle数据泵备份完美解决了数据备份的完整性,这里提供大家数据泵自动备份的脚本,为各类生产环境中的数据的备份提供的较完善的解决方案
本文将详细介绍 Oracle 备份策略,包括备份的重要性、备份分类、冷备份、热备份、逻辑备份等内容。 了解备份的重要性 备份是数据库管理员的重要任务之一,备份可以防止数据丢失,确保数据库的安全性和可靠性。备份...
数据备份专家是一款专为ORACLE数据库管理人员设计的,能够自动完成 ORACLE 数据库逻辑备份操作的软件。它封装了 ORACLE 自带的 EXP 数据导出工具和 IMP 数据导入工具,在设定好定时时间及其它信息后,每天在设定的...
"Oracle备份恢复小工具"正是一款针对这一需求设计的实用程序,它简化了Oracle数据库的备份与恢复流程。 首先,我们来详细了解Oracle数据库备份的重要性。数据库备份是为了防止数据丢失,如硬件故障、软件错误、人为...
Oracle数据库自动备份的重要性不言而喻,它是数据安全策略的关键组成部分。在发生硬件故障、软件错误或恶意攻击时,有效的备份能够迅速恢复业务运营,减少数据丢失带来的损失。此工具的使用,可以避免手动备份的繁琐...
本文将围绕“Oracle自动备份脚本”这一主题,深入探讨如何利用脚本实现Oracle数据库的自动备份,确保数据的安全与可恢复性。 ### Oracle自动备份脚本的重要性 在日常运营中,数据的丢失或损坏可能对企业造成不可...
ORACLE自动备份数据库脚本,并删除指定天数以前,所备份的数据文件。
Oracle容灾备份实时备份 数据迁移应用实践
Oracle 数据备份是数据库管理中的重要环节,确保数据的安全性和可恢复性。Oracle 提供了多种数据备份工具,其中最常用的是 RMAN (Recovery Manager) 和 SQL*Plus 命令。本资源“oracle 数据备份工具源代码”可能包含...
在进行Oracle 19c RAC(Real Application Clusters)数据库的数据备份与恢复操作时,可能会遇到需要将RAC集群环境下的备份数据恢复到单实例环境中的场景。这种情况下,RMAN(Recovery Manager)作为Oracle提供的强大...