[英]SYSDATE - 1 error on pl/sql function
我有一個問題:
當我在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
但是我已經添加了幾天前的所有存檔日志,而我的sysdate是今天。
請幫助解決這個問題。
謝謝。
雷格斯
yo
您需要從前兩個查詢中獲取值並實際執行它們,但無論如何似乎都存在語法錯誤。
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;
好像您運行了select但沒有執行句子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.