要删除60天以前的表数据,小弟刚学,多指教。谢谢大哥们帮忙~!看看对不?create or replace procedure sp_delete_60days (p_return out varchar2) iS
p_date    DATE;
BEGIN
  p_date := add_months(sysdate-2);  delete s_tb_buystat  t  where t.buytime <= p_date;  
  COMMIT;
    p_return := '000';  EXCEPTION    WHEN OTHERS THEN   rollback;      INFOMSG('ERR.CODE:'||TO_CHAR(SQLCODE));     
      INFOMSG('ERR.MSG:'||SQLERRM);
       END sp_delete_60days;

解决方案 »

  1.   

    add_months(sysdate-2);  应该是 add_months(sysdate,-2);后面的 INFOMSG('ERR.CODE:'||TO_CHAR(SQLCODE));    不知道是什么?
      

  2.   

    用JOB,以下是每天执行一次的例子VARIABLE jobno number;
    BEGIN
    DBMS_JOB.SUBMIT(:jobno, 'sp_delete_60days;',SYSDATE,'SYSDATE + 1');
    commit;
    END;