注意一定要启用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;
浙公网安备 33010602011771号