我在下面写了一个程序来删除表中的记录,并在另一个表中记录旧的和新的rowcount。
create or replace procedure delete_old_records_job as
DECLARE
COUNTER PLS_INTEGER:=1;
drop table SIEBEL.RETAILORDER_DETAILS_COUNT;
CREATE TABLE SIEBEL.RETAILORDER_DETAILS_COUNT (TABLE_COUNT_OLD varchar(64) NOT NULL,TABLE_COUNT_NEW varchar(64) NOT NULL);
insert into SIEBEL.RETAILORDER_DETAILS_COUNT( TABLE_COUNT_OLD )SELECT COUNT(*) FROM SIEBEL.Z_VIEWS_BACKUP;
BEGIN
WHILE COUNTER>0 LOOP
DELETE FROM SIEBEL.Z_VIEWS_BACKUP WHERE LAST_UPD < add_months(sysdate, -3) AND ROWNUM<25000;
COUNTER:=SQL%ROWCOUNT;
COMMIT;
END LOOP
insert into SIEBEL.RETAILORDER_DETAILS_COUNT( TABLE_COUNT_NEW )
SELECT COUNT(*) FROM SIEBEL.Z_VIEWS_BACKUP;
END;
我在执行
时遇到错误SQL> show errors procedure delete_old_records_job;
Errors for PROCEDURE DELETE_OLD_RECORDS_JOB:
LINE/COL ERROR
-------- -----------------------------------------------------------------
2/1 PLS-00103: Encountered the symbol "DECLARE" when expecting one of
the following:
begin function pragma procedure subtype type <an identifier>
<a double-quoted delimited-identifier> current cursor delete
exists prior external language
The symbol "begin" was substituted for "DECLARE" to continue.
4/1 PLS-00103: Encountered the symbol "DROP" when expecting one of
the following:
begin function pragma procedure subtype type <an identifier>
<a double-quoted delimited-identifier> current cursor delete
LINE/COL ERROR
-------- -----------------------------------------------------------------
exists prior