[20250506]truncate table,drop table恢复使用脚本.txt --//扫描行号根据具体的情况修改,一般8k不会大于736.没有必要设置太大,不然执行很慢的。 $ cat txt/truncT.txt DECLARE v_fno NUMBER; v_s_bno NUMBER; v_e_bno NUMBER; v_rowid ROWID; v_owner VARCHAR2 (100) := '&&1'; v_table VARCHAR2 (100) := '&&2'; v_o_owner VARCHAR2 (100) := '&&3'; v_o_table VARCHAR2 (100) := '&&4'; v_dataobj NUMBER; v_sql VARCHAR2 (4000); v_tablespace VARCHAR2 (100); nrows NUMBER; BEGIN nrows := 0; SELECT data_object_id INTO v_dataobj FROM dba_objects WHERE owner = v_owner AND object_name = v_table; SELECT tablespace_name INTO v_tablespace FROM dba_tables WHERE owner = v_owner AND table_name = v_table; FOR i IN (SELECT relative_fno, block_id, blocks FROM dba_extents WHERE owner = v_owner AND segment_name = v_table AND extent_id = 0 UNION ALL SELECT relative_fno, block_id, blocks FROM dba_free_space WHERE tablespace_name = v_tablespace UNION ALL SELECT relative_fno, block_id, blocks FROM (SELECT relative_fno ,block_id ,blocks ,ROW_NUMBER () OVER (PARTITION BY owner, segment_name, partition_name ORDER BY extent_id DESC) rn FROM dba_extents WHERE tablespace_name = v_tablespace AND extent_id > 0) WHERE rn = 1) --for i in (select file_id,block_id from scott.scanblock) LOOP v_fno := i.relative_fno; v_s_bno := i.block_id; v_e_bno := i.block_id + i.blocks - 1; -- v_e_bno:=i.block_id+1-1; --//using scanblock method FOR j IN v_s_bno .. v_e_bno LOOP BEGIN FOR x IN 0 .. 150 LOOP v_rowid := DBMS_ROWID.rowid_create ( 1 ,v_dataobj ,v_fno ,j ,x); v_sql := 'insert into ' || v_o_owner || '.' || v_o_table || ' select * from ' || v_owner || '.' || v_table || ' where rowid=:1'; EXECUTE IMMEDIATE v_sql USING v_rowid; IF SQL%ROWCOUNT = 1 THEN nrows := nrows + 1; END IF; IF (MOD (nrows, 10000) = 0) THEN COMMIT; END IF; END LOOP; EXCEPTION WHEN OTHERS THEN NULL; END; COMMIT; END LOOP; END LOOP; END; / $ cat versions.sql -- Copyright 2023 lfree. All rights reserved. -- Licensed under the Apache License, Version 2.0. See LICENSE.txt for terms and conditions. ------------------------------------------------------------------------------------------------------------ -- -- File name: versions.sql -- Purpose: display table record of dml history -- -- Author: lfree -- -- Usage: -- @ versions <table_name> <col1,..,colN> <scn|s|t|time|timestamp> <scn1|time1> <scn2|time2> <filter> -- ------------------------------------------------------------------------------------------------------------- set term off column 2 new_value 2 column 3 new_value 3 column 4 new_value 4 column 5 new_value 5 column 6 new_value 6 column cols new_value v_cols column st new_value v_st column s1 new_value v_s1 column s2 new_value v_s2 column filter new_value v_filter select null "2" , null "3" , null "4" , null "5" ,null "6" from dual where 1=2; select decode('&2',NULL,'&1..*','*','&1..*','&2') cols ,decode(lower('&3'),null,'scn','s','scn','scn','scn','t','timestamp','time','timestamp','timestamp','timestamp','scn') st ,decode('&4',null,'minvalue','&4') s1 ,decode('&5',null,'maxvalue','&5') s2 from dual ; select decode('&6',null,'1=1','&6') "6" from dual ; set term on --set echo on verify on SELECT versions_starttime ,versions_endtime ,versions_startscn ,versions_endscn ,versions_xid ,versions_operation ,&v_cols FROM &1 VERSIONS BETWEEN &v_st &v_s1 AND &v_s2 where ( &6 ) ORDER BY VERSIONS_STARTSCN nulls first; -- FROM &1 VERSIONS BETWEEN SCN MINVALUE AND MAXVALUE -- FROM &1 VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE -- FROM &1 VERSIONS BETWEEN SCN &3 AND &4 -- FROM &1 VERSIONS BETWEEN TIMESTAMP &&3 and &4 set echo off verify off $ cat as_of.sql -- Copyright 2023 lfree. All rights reserved. -- Licensed under the Apache License, Version 2.0. See LICENSE.txt for terms and conditions. ------------------------------------------------------------------------------------------------------------ -- -- File name: as_of.sql -- Purpose: display table record of dml history using as of scn|timestamp method. -- -- Author: lfree -- -- Usage: -- @ as_of <table_name> <col1,..,colN> <scn|s|t|time|timestamp> <scn|timestamp> <filter> -- ------------------------------------------------------------------------------------------------------------- set term off column 2 new_value 2 column 3 new_value 3 column 4 new_value 4 column 5 new_value 5 column 6 new_value 6 column cols new_value v_cols column st new_value v_st column s1 new_value v_s1 column s2 new_value v_s2 column filter new_value v_filter select null "2" , null "3" , null "4" , null "5" ,null "6" from dual where 1=2; select decode('&2',NULL,'&1..*','*','&1..*','&2') cols ,decode(lower('&3'),null,'scn','s','scn','scn','scn','t','timestamp','time','timestamp','timestamp','timestamp','scn') st ,decode('&4',null,'minvalue','&4') s1 --,decode('&5',null,'maxvalue','&5') s2 from dual ; select decode('&5',null,'1=1','&5') "5" from dual ; set term on --set echo on verify on SELECT rowid ,&v_cols FROM &1 as of &v_st &v_s1 where ( &5 ); set echo off verify off
[20250506]truncate table,drop table恢复使用脚本.txt
来源:这里教程网
时间:2026-03-03 21:58:27
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- INFO OGG-06441 不是告警而容易忽略的错误
INFO OGG-06441 不是告警而容易忽略的错误
26-03-03 - 小米没想到,自家车主不服管
小米没想到,自家车主不服管
26-03-03 - 聊了十年“社交梦”,支付宝终于打通了这个电话
聊了十年“社交梦”,支付宝终于打通了这个电话
26-03-03 - 中国最良心的两个企业家,联手了
中国最良心的两个企业家,联手了
26-03-03 - Oracle官方MySQL+APEX+AI限时免费预约流程大全
Oracle官方MySQL+APEX+AI限时免费预约流程大全
26-03-03 - 国产密码新时代!华测国密 SSL 证书解锁安全新高度
国产密码新时代!华测国密 SSL 证书解锁安全新高度
26-03-03 - 数据库管理-第325期 ADG Failover后该做啥(20250513)
- 评测揭秘!同一份外卖,拼好饭为什么更有性价比?
评测揭秘!同一份外卖,拼好饭为什么更有性价比?
26-03-03 - 京东敢烧钱做外卖,原来是因为电商赚麻了
京东敢烧钱做外卖,原来是因为电商赚麻了
26-03-03 - 深入浅出 Rust 并发:RwLock 与 Mutex 在 Tauri 项目中的实践
