【问题标题】:SYSDATE - 1 error on pl/sql functionSYSDATE - pl/sql 函数出现 1 个错误
【发布时间】:2009-04-23 15:56:26
【问题描述】:

我有一个问题:

当我在 ti 下面发出这个函数时,会出现以下错误:

select 'EXECUTE DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME =>'''||name||'''||,OPTIONS=>DBMS_LOGMNR.NEW);'
 from v\$archived_log 
where name is not null;

select 'EXECUTE DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME =>'''||name||'''||,OPTIONS=>DBMS_LOGMNR.ADDFILE);' 
 from v\$archived_log 
where name is not null;


EXECUTE DBMS_LOGMNR.START_LOGMNR( STARTTIME => SYSDATE - 1, ENDTIME => SYSDATE,
OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG + DBMS_LOGMNR.CONTINUOUS_MINE +
DBMS_LOGMNR.COMMITTED_DATA_ONLY + DBMS_LOGMNR.PRINT_PRETTY_SQL);

Error:

*
ERROR at line 1:
ORA-01291: missing logfile
ORA-06512: at "SYS.DBMS_LOGMNR", line 58
ORA-06512: at line 1

但是我已经添加了几天前的所有存档日志,我的系统日期是今天。

请帮忙解决这个问题。

谢谢。

感谢

【问题讨论】:

  • 您在此调用之前执行了 DBMS_LOGMNR.ADD_LOGFILE(xxxxx)?您可以编辑以显示它吗?

标签: oracle plsql ora-06512


【解决方案1】:

您需要从前两个查询中获取值并实际执行它们,而且您似乎仍然存在语法错误。

BEGIN
  FOR CUR_NEW IN ( 
    select 'CALL DBMS_LOGMNR.ADD_LOGFILE(' ||
           'LOGFILENAME =>'''||name||''','||
           'OPTIONS=>DBMS_LOGMNR.NEW);' as COMM
    from v$archived_log 
    where name is not null
  ) LOOP
    EXECUTE IMMEDIATE CUR_NEW.COMM;
  END LOOP;

  FOR CUR_ADD IN ( 
    select 'CALL DBMS_LOGMNR.ADD_LOGFILE(' ||
           'LOGFILENAME =>'''||name||''','||
           'OPTIONS=>DBMS_LOGMNR.ADDFILE);' as COMM
    from v$archived_log 
    where name is not null
  ) LOOP
    EXECUTE IMMEDIATE CUR_ADD.COMM;
  END LOOP;

  EXECUTE IMMEDIATE 'CALL DBMS_LOGMNR.START_LOGMNR( ' ||
    'STARTTIME => SYSDATE - 1, ' ||
    'ENDTIME => SYSDATE, ' ||
    'OPTIONS => ' ||
      '  DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG '||
      '+ DBMS_LOGMNR.CONTINUOUS_MINE '||
      '+ DBMS_LOGMNR.COMMITTED_DATA_ONLY '||
      '+ DBMS_LOGMNR.PRINT_PRETTY_SQL)';
END;

【讨论】:

    【解决方案2】:

    好像你运行了选择但没有执行句子。

    【讨论】:

    • 感谢您的回复,但您是什么意思?,我应该只使用执行命令并删除 select 。请解释。问候
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多