挖下坟 以sysdba权限登录,执行 SELECT * FROM dba_source AS OF TIMESTAMP to_timestamp('所在时间点', 'yyyy-mm-dd hh24:mi:ss') WHERE owner = '所在用户' and name = '需要回复的包名'; 在dba_source的字段text中就是该包的ddl语句 自己写个存储过程循环连接text完成
-- 用闪回查询试试:15:54:02 SYS@tdwora > drop procedure scott.update_salary;过程已删除。15:54:53 SYS@tdwora > select line, text 15:55:12 2 from dba_source AS OF TIMESTAMP TO_TIMESTAMP('2012-07-20 15:51:00','YYYY-MM-DD HH24:MI:SS') 15:55:12 3 where owner='SCOTT' 15:55:12 4 and name=upper('update_salary') 15:55:12 5 and type='PROCEDURE' 15:55:12 6 order by line; LINE TEXT ---------- ---------------------------------------------------------------------------------------- 1 PROCEDURE update_salary (dept_in IN NUMBER) 2 IS 3 PRAGMA AUTONOMOUS_TRANSACTION; 4 CURSOR myemps IS 5 SELECT empno FROM emp 6 WHERE deptno = dept_in 7 FOR UPDATE NOWAIT; 8 BEGIN 9 FOR rec IN myemps 10 LOOP 11 UPDATE emp SET sal = sal * 2.8 + 999 12 WHERE empno = rec.empno; 13 END LOOP; 14 COMMIT; 15 END;已选择15行。15:55:13 SYS@tdwora >
recycle,那具体怎么用呀?
以sysdba权限登录,执行
SELECT * FROM dba_source AS
OF TIMESTAMP to_timestamp('所在时间点', 'yyyy-mm-dd hh24:mi:ss') WHERE owner = '所在用户' and name = '需要回复的包名';
在dba_source的字段text中就是该包的ddl语句
自己写个存储过程循环连接text完成
15:55:12 2 from dba_source AS OF TIMESTAMP TO_TIMESTAMP('2012-07-20 15:51:00','YYYY-MM-DD HH24:MI:SS')
15:55:12 3 where owner='SCOTT'
15:55:12 4 and name=upper('update_salary')
15:55:12 5 and type='PROCEDURE'
15:55:12 6 order by line; LINE TEXT
---------- ----------------------------------------------------------------------------------------
1 PROCEDURE update_salary (dept_in IN NUMBER)
2 IS
3 PRAGMA AUTONOMOUS_TRANSACTION;
4 CURSOR myemps IS
5 SELECT empno FROM emp
6 WHERE deptno = dept_in
7 FOR UPDATE NOWAIT;
8 BEGIN
9 FOR rec IN myemps
10 LOOP
11 UPDATE emp SET sal = sal * 2.8 + 999
12 WHERE empno = rec.empno;
13 END LOOP;
14 COMMIT;
15 END;已选择15行。15:55:13 SYS@tdwora >