当前位置: 首页 > news >正文

恢复DELETE数据的PACKAGE(操作手册篇)(仅做研究使用)

恢复DELETE数据的PACKAGE(操作手册篇)

关于package的介绍和使用演示,请见《Oracle恢复DELETE数据的PACKAGE(介绍篇)》

安装

package下载链接
https://download.csdn.net/download/sp60cn/92942843
我将恢复delete数据PACKAGE简单集成在一个sql文件中,方便直接执行创建,或者自行复制sql文件中的创建语句执行也可以。

sqlplus/assysdba@del_recover_basic.sql

脚本就是简单的sqlplus / as sysdba进入数据库后执行创建,如果不是ORACLE_SID指向的实例,请修改脚本中的登录部分,或是复制语句后自行执行创建。
如果是CDB/PDB环境,请在要恢复的源表所在的容器的SYS用户中执行创建。

注意事项

  • 暂时仅支持恢复普通表,暂不支持如分区表、索引组织表等类型的表。
  • 暂时仅支持恢复NUMBER, VARCHAR2, CHAR, DATE, TIMESTAMP, RAW这六种数据类型。
  • 大部分不支持的数据类型会填充为null(目前已知的有CLOB、BLOB、XMLTYPE、INTERVAL等)。
  • 部分不支持的数据类型可能还会导致数据读取错误(目前已知的有LONG、LONG RAW)。
  • 源表元数据必须存在(未被 DROP)
  • 若底层数据被覆盖,则无法恢复。
  • 目标数据文件必须在文件系统(不支持共享存储)
  • 支持CDB/PDB环境
  • 目前已知适用于Oracle11g和Oracle19c,期间版本和更高版应该是支持的,但未经过测试。
  • 如果源表中有行迁移、行链接现象,会导致恢复失败。
  • 由于测试环境有局限性,不同环境可能导致失败。
  • 测试脚本的环境为Linux的Oracle19c的单机数据库。

参数详解

init_set 过程

设置恢复时的输出模式。
语法:

DEL_RECOVER_BASIC.INIT_SET(tracingINBOOLEANDEFAULTFALSE,loggingINBOOLEANDEFAULTTRUE);

参数:

参数模式默认值描述
tracingINFALSE恢复时是否输出详细的字段解析信息,供开发调试时使用。
loggingINTRUE恢复时是否输出恢复信息(如对象号、恢复出的表名、处理的数据文件、使用的目录、恢复的行数),建议保持开启。

使用说明:

  • init_set的设置会持续整个会话,直到再次调用覆盖。
  • init_set单独执行没有效果,它是为recover_deleted_table过程服务的。
  • 在sqlplus中执行recover_deleted_table恢复时,务必打开set serveroutput on,否则init_set的设置不会有任何输出。
  • 若源表较大,不建议开启tracing,会导致恢复时间加长。

示例:

EXECDEL_RECOVER_BASIC.init_set(FALSE,TRUE);

recover_deleted_table 过程

创建恢复表,读取数据文件,解析行内数据,将指定源表的数据恢复到恢复表内。
语法:

DEL_RECOVER_BASIC.RECOVER_DELETE_TABLE(p_ownerINVARCHAR2,p_tableINVARCHAR2,p_new_ownerINVARCHAR2DEFAULTUSER,p_new_tableINVARCHAR2DEFAULTNULL,p_ts_nameINVARCHAR2DEFAULTNULL);

参数:

项目模式默认值描述
p_ownerIN源表所属的用户(模式)名称。必选。
p_tableIN源表名称。必须与 dba_tables.table_name 完全一致,不能包含空格。必选。
p_new_ownerINUSER恢复表所属的用户名。默认为当前用户(即执行USER函数返回的用户名)。可选。
p_new_tableINNULL恢复表的名称。若为 NULL,自动生成 R_源表名(若重名则自动添加数字后缀)。可选。
p_ts_nameINNULL恢复表存放的表空间名称。若为 NULL,则使用恢复表所属用户的默认表空间。可选。

使用说明:

  • 再次说明,在sqlplus中执行recover_deleted_table恢复时,建议打开set serveroutput on,否则不会有任何输出。
  • 在SYS用户中创建,在SYS用户中执行。
  • 需要预先存在指向源表数据所在数据文件的目录对象,如不存在,在执行RECOVER_DELETE_TABLE后会提供一个创建语句,创建目录后再次执行恢复即可。
  • 恢复表会自动创建,但不包含源表的约束、索引、触发器、权限等
  • 每成功恢复一行即自动提交,无需用户手动 COMMIT。
  • 若恢复表名已存在,脚本会自动添加数字后缀(如 R_EMP_1),不会覆盖已有表。
  • 每个参数的值均需全部大写
  • 若数据量大,恢复时间可能会很长。

示例:

EXECDEL_RECOVER_BASIC.recover_deleted_table('TEST','EMP','TEST');

usage 过程

显示包的简要帮助信息。
语法:

DEL_RECOVER_BASIC.USAGE;

示例:

EXECDEL_RECOVER_BASIC.usage;
http://www.jsqmd.com/news/950288/

相关文章:

  • 山西网安曝光5起AI网络谣言案例:为博流量虚构场景、仿冒名人带货等均受罚
  • 别再让3D动画糊成一团了!Anylogic三维窗口的相机绑定与多视图配置实战
  • AutoClaw:面向业务的网页数据采集工作流设计范式
  • Azkaban权限管理实战:从零配置用户、角色与群组,打造安全可控的调度平台
  • 2026年6月卖家精灵优惠码更新:新购续费均可用的折扣码汇总 - 麦麦唛
  • 基于Arduino与超声波传感器的智能避障小车全流程实战指南
  • AI辅助开发新思路:利用快马多模型能力打造你的智能版typora编辑器
  • D2RML:基于智能令牌认证的暗黑破坏神2重制版高级自动化多实例管理引擎
  • CTF出题人视角:我是如何设计‘Easy Notes’这道Session反序列化题的
  • Navicat Mac版无限重置教程:3种方法轻松延长试用期
  • 告别重复劳动:用快马生成自动化工具高效管理ft232r驱动与串口配置
  • 基于Arduino与WS2812B的DIY摄影灯光系统:从电路设计到布光实战
  • 基于Arduino的猜拳机器人:从机械设计到控制逻辑的完整实现
  • 基于树莓派与RFID的交互式智能壁炉:从硬件搭建到软件实现
  • 避坑指南:在Win10/Ubuntu双系统下用D435i和BundleFusion重建三维场景的完整配置
  • 意图识别系统实战:从模糊到精准的七条规则
  • 终极免费指南:如何用JavaScript脚本轻松下载百度文库文档
  • Galactose-PEG-SH 半乳糖-聚乙二醇-巯基的产品使用指南
  • 终极指南:3步掌握专业音频可视化分析工具Sonic Visualiser
  • 2026吉安本地做广告找谁?覆盖各区县的靠谱招牌及导视系统公司 - 品牌2026
  • 福州低价处理闲置包包怎么挽回损失?读懂本地定价逻辑轻松高价变现 - 开心测评
  • 计算机组成原理 | Cache的基本原理
  • 树莓派硬件UART配置实战:直连RS-232/RS-485工业设备
  • 069、非线性控制与线性化方法
  • OpenAI GPT-4 Turbo升级:结构化输出、推理可观测与字段级计费
  • 手把手教你:在Ubuntu 22.04上为Docker容器或特定服务创建专属FTP用户(避开nologin陷阱)
  • PitchDetect:在浏览器中实现实时音高检测的奇妙工具 [特殊字符]
  • 2026年短视频矩阵视频混剪头部工具市场动态深度解析:超级智剪、筷子科技、超级编导
  • 2026常州翡翠回收便民指南:收的顶合规靠谱无套路 - 奢侈品回收测评
  • ESP8266与WS2812B打造超薄HexMatrix网络时钟:从硬件到软件全解析