电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

oracle中假如碰到表损坏,而没有rman备份可以恢复,或者碰到不明原因的bug,需要重建表测试,如何重建表?

来源:金蝶云社区作者:金蝶2024-09-227

oracle中假如碰到表损坏,而没有rman备份可以恢复,或者碰到不明原因的bug,需要重建表测试,如何重建表?

1.用plsql工具把表的SQL创建语句导出来,
2.用sqlplus  账套名/passwd 登录
/*
drop table table_name;
drop table table_name_bak;
create table table_name(a int primary key,b int );
insert into table_name values(1,1);
commit;
*/
--假定table_name是我们要重建的表,
3. 获取表的创建语句,这步也可以用sqldeveloper, pl/sql developer, TOAD等工具,通过图形界面取得



SET SERVEROUTPUT ON
SET LINESIZE 1000
SET FEEDBACK OFF
set long 999999          
SET PAGESIZE 1000    
--上面 set 这五句在sqldeveloper, pl/sql developer, TOAD等工具中则不必执行

DECLARE
BEGIN
 DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',false);    
END;
/
--除去多余的参数
SELECT DBMS_METADATA.GET_DDL('TABLE','TABLE_NAME') FROM DUAL;
--取表创建语句
得到类似以下语句,把语句复制出来,将会在第6步用到
--  CREATE TABLE "LUO"."TABLE_NAME"
--   (    "A" NUMBER(*,0),
--    "B" NUMBER(*,0),
--     PRIMARY KEY ("A")
--  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
--  TABLESPACE "USERS"  ENABLE
--   ) SEGMENT CREATION IMMEDIATE
--  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
-- NOCOMPRESS LOGGING
--  TABLESPACE "USERS"

4.执行下面语句,得到重命名索引的执行语句,使索引用回原来的名字,把结果复制出来
select 'ALTER

oracle中假如碰到表损坏,而没有rman备份可以恢复,或者碰到不明原因的bug,需要重建表测试,如何重建表?

1.用plsql工具把表的SQL创建语句导出来, 2.用sqlplus 账套名/passwd 登录/*drop table table_name;drop table table_name_bak;cre...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信