找回被create or replace覆盖的PL/SQL对象
2012-05-27 14:30
344 查看
参考网址:http://www.oracledatabase12g.com/
在开发的过程中,可能由于某些程序员执行了create or replace方法,覆盖了之前的同名的PL/SQL对象或者是视图等。
这里需要使用到Oracle的新版本提供的闪回的功能-FLASHBACK QUERY.
1、查询当前的SCN
2、查询系统中最小的SCN号(当前系统支持的)
3、SCN和TIMESTAMP之间的相互转换:
4、存储过程的闪回操作:需要使用ALL_SOURCE表,并且在系统用户下(SYS)
建立过程:
当前的SCN:
查询当前SCN对应的ALL_SOURCE中的Test_Create_Or_Replace的信息:
将过程进行修改:
--查询最新的信息:
所以可用使用:
查询该SCN点的数据.
同理可得,可以对视图进行闪回操作,可以找出误删除的视图信息。需要使用ALL_VIEWS进行闪回操作
也可以使用:
进行闪回操作。
在开发的过程中,可能由于某些程序员执行了create or replace方法,覆盖了之前的同名的PL/SQL对象或者是视图等。
这里需要使用到Oracle的新版本提供的闪回的功能-FLASHBACK QUERY.
1、查询当前的SCN
SELECT Dbms_Flashback.Get_System_Change_Number, Current_Scn FROM V$database
2、查询系统中最小的SCN号(当前系统支持的)
SELECT min(SCN) FROM sys.Smon_Scn_Time
3、SCN和TIMESTAMP之间的相互转换:
SELECT Timestamp_To_Scn(SYSDATE - 1) SCN, To_Char(Scn_To_Timestamp(790000), 'yyyy-mm-dd hh:mi:ss') TIMESTAMP FROM Dual
4、存储过程的闪回操作:需要使用ALL_SOURCE表,并且在系统用户下(SYS)
建立过程:
CREATE OR REPLACE PROCEDURE Test_Create_Or_Replace IS BEGIN NULL; NULL; NULL; NULL; NULL; NULL; NULL; NULL; NULL; END Test_Create_Or_Replace;
当前的SCN:
查询当前SCN对应的ALL_SOURCE中的Test_Create_Or_Replace的信息:
SELECT * FROM All_Source AS OF Scn 927331 WHERE Owner = 'SCOTT' AND NAME = 'TEST_CREATE_OR_REPLACE';
将过程进行修改:
CREATE OR REPLACE PROCEDURE Test_Create_Or_Replace IS BEGIN NULL; END Test_Create_Or_Replace;
--查询最新的信息:
所以可用使用:
SELECT * FROM All_Source AS OF Scn 927331 WHERE Owner = 'SCOTT' AND NAME = 'TEST_CREATE_OR_REPLACE';
查询该SCN点的数据.
同理可得,可以对视图进行闪回操作,可以找出误删除的视图信息。需要使用ALL_VIEWS进行闪回操作
也可以使用:
SELECT * FROM All_Source AS OF Timestamp scn_to_timestamp(927331);
进行闪回操作。
相关文章推荐
- 如何找回被create or replace覆盖的PL/SQL对象
- 如何找回被create or replace覆盖的PL/SQL对象
- SQL Server: T-SQL Alternative to 'CREATE OR REPLACE' in PL/SQL
- 使用Powerdesigner的物理数据模型生成SQL脚本中开头处多出来的create or replace package PDTypes
- pyspark sql createGlobalTempView和createOrReplaceTempView
- 用DBMS_DDL包重编译PL/SQL对象
- 用DBMS_DDL包重编译PL/SQL对象
- PL/SQL连接错误:ora-12705:cannot access NLS data files or invalid environment specified
- ORA-06502:PL/SQL numeric or value error:associate array shape is not consistent with session parame
- Oralce Create User PL/SQL
- PL/SQL 一个数据对象一个事务(且记录错误信息到处理对象)(rollback,submit)
- 使用wrap和unwrap加密解密Oracle的PL/SQL对象(包,存储过程,函数等)代码
- PHP调用Oracle存储过程时的错误:ORA-06502: PL/SQL: numeric or value error: character string buffer too small
- PL/SQL 数据类型和变量 -- 大对象
- PL/SQL查询oracle数据库对象
- PL/SQL入门--对象类型
- 使用createSQLQuery直接封装成自定义对象
- 之前创建了一个表空间,然后今天不小心把表空间文件给删除了。然后用pl/sql连接数据库的时候,报ORA-01033错误。ora-01033:oracle initializationg or shut
- Oracle PL/SQL 中内嵌集合对象的使用