一、POS伺服器異常當機,開機後要檢查rtlog_data,sale_data_pos表。
plsql中執行 create table ls_rtlog as select * from rtlog_data
如果報錯,說明rtlog_data表中有錯誤資料,影響rtlog檔案生成。
如果執行成功,說明rtlog_data表沒有錯誤資料,執行
drop table ls_rtlog purge 删除ls_rtlog表
二、ora-01555 快照過舊 rtlog_data及sale_data_pos處理方法:
plsql中執行以下程式
create table ls as select * from rtlog_data where 1=2;
declare
ord number(10):=0;
begin
for p in (select * from rtlog_data)
loop
ord:=p.order_no;
insert into ls values(p.order_no,p.data_content,p.write_time,p.belong_date,p.row_count);
end loop;
exception when others
then dbms_output.put_line(ord);
end;
--在pl/sql的輸出中檢視錯誤單号,可能多個錯誤單号,要多次執行上邊的程式,隻到輸出中沒有資料為止。
1 delete rtlog_data where order_no=2976893;
drop table ls purge;
----sale_data_pos
2 create table ls as select * from sale_data_pos where 1=2;
declare
ord number(10):=0;
pos number(10):=0;
begin
for p in (select * from sale_data_pos where trunc(update_time)=to_date(&1,'yyyymmdd') )
loop
ord:=p.orderno;
pos:=p.posno;
insert into ls values(p.orderno,p.posno,p.update_time,p.sale_data);
end loop;
exception
when others then
dbms_output.put_line(ord||' and posno='||pos);
end;
--在pl/sql的輸出中檢視錯誤單号,隻到輸出中沒有資料為止。
delete sale_data_pos where orderno= and posno=
drop table ls purge;