BEGIN
DBMS_LOGMNR.ADD_LOGFILE( logfilename=> '/u2/oradata/ORCL/arch/1_2256_654825874.dbf',
options=> dbms_logmnr.NEW);
END;
-------------------------------------------------------------------
BEGIN
DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG + DBMS_LOGMNR.COMMITTED_DATA_ONLY + DBMS_LOGMNR.PRINT_PRETTY_SQL);
END;
-------------------------------------------------------------------
SELECT *
FROM v$logmnr_contents a
WHERE seg_name LIKE '%V_NAME%'
-------------------------------------------------------------------
BEGIN
DBMS_LOGMNR.END_LOGMNR;
END;
根据 Oracle 的版本以及您是否具有适当的权限(FLASHBACK ANY TABLE)以及更改是否相对较新,
将为您提供一个小时前的视图定义文本。您显然可以将闪回时间调整为要撤消的 DDL 之前的时间戳。
这是我的答案:
这不使用 utl_file_dir 参数。(快乐的)
如果您对创建视图的 DDL 语句没有源代码控制,或者没有镜像数据库的开发或生产数据库,那么您没有太多选择。可以使用字典文件、重做日志或在线字典启动 logminer。
您是否在创建原始视图之前启动了 logminer?
尝试从 V$LOGMNR_CONTENTS 中选择 *;
看看它是否正在运行