上善若水
愿倾其毕生之功,高扬.NET旗帜

注意一定要启用row movement功能,是因为flashback之后row的rowid会发生变化

alter table MW_APP.PM_BZ_SB_DLHGQ_SB enable row movement;
flashback 
table MW_APP.PM_BZ_SB_DLHGQ_SB to timestamp to_timestamp('2008-05-09 10:30:00','yyyy-mm-dd hh24:mi:ss'); 

主要是因为项目有些字段类型,用户经常需要更改,要做好数据恢复的相关工作。
下面对于平台更改数据类型的步骤,做一个简要说明
--察看数据
select * from MW_APP.PM_BZ_SB_DLHGQ_SB where eddlec is not null order by txr_time desc

--备份数据
UPDATE MW_APP.PM_BZ_SB_DLHGQ_SB SET BAK = CAST(EDDLEC AS VARCHAR2(256));
COMMIT;

--更新业务数据表字段类型
UPDATE MWT_OM_ATTR ATTR
   
SET ATTR.DBIT_ID = 'VARCHAR', ATTR.ATTR_COLLENGTH = 256
 
WHERE CLS_ID = 'CF068FAD-DE6A-48E2-9C0F-81BF4A87E328'
   
AND ATTR_ID = '45AABCD3-8BF1-4C19-BF35-6A43B42888AD';
   
commit;
   
--观察更新效果
SELECT *
  
FROM MWT_OM_ATTR
 
WHERE CLS_ID = 'CF068FAD-DE6A-48E2-9C0F-81BF4A87E328'
   
AND ATTR_ID = '45AABCD3-8BF1-4C19-BF35-6A43B42888AD';
commit;

--将更新字段重置为NULL
UPDATE MW_APP.PM_BZ_SB_DLHGQ_SB SET EDDLEC = NULL;
commit;

--直接在oracle可视化工具中更新字段类型 
--
不要忘记COMMIT 否则会提示数据NOWAIT状态
MW_APP.PM_BZ_SB_DLHGQ_SB

--恢复备份数据
UPDATE MW_APP.PM_BZ_SB_DLHGQ_SB SET EDDLEC = BAK;
COMMIT;


posted on 2008-05-09 11:18  小兔快跑  阅读(121)  评论(0)    收藏  举报