对于被其它存储覆盖的存储过程,恢复时比较麻烦,解决方法如下:
1.oracle的存储过程代码都保存在all_source 表中,所以恢复思路是利用ORACLE的闪回特性,把被覆盖前的数据恢复回来
2.恢复系统时间3000秒之前all_source 表的数据
create table CY_PROC_TEMP
as
select * from all_source as of timestamp (systimestamp -interval'3000'second)
where TYPE = 'PROCEDURE' And WNER = 'CMSS'
And Name = 'GWZ_TMP_PROCEDURE' ;
timestamp----时间戳
systimestamp -------系统时间戳
减号表示在多少秒之前
3.然后从CY_PROC_TEMP中取出原程序语句,建立新程序,这样就把被覆盖的程序恢复回来了。
1.oracle的存储过程代码都保存在all_source 表中,所以恢复思路是利用ORACLE的闪回特性,把被覆盖前的数据恢复回来
2.恢复系统时间3000秒之前all_source 表的数据
create table CY_PROC_TEMP
as
select * from all_source as of timestamp (systimestamp -interval'3000'second)
where TYPE = 'PROCEDURE' And WNER = 'CMSS'
And Name = 'GWZ_TMP_PROCEDURE' ;
timestamp----时间戳
systimestamp -------系统时间戳
减号表示在多少秒之前
3.然后从CY_PROC_TEMP中取出原程序语句,建立新程序,这样就把被覆盖的程序恢复回来了。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21081491/viewspace-567101/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/21081491/viewspace-567101/