Может ли кто-нибудь помочь мне написать пользовательскую функцию для удаления старых записей и возврата общего количества одновременно?Вот что у меня сейчас.Часть удаления работает хорошо, но каким-то образом счетчик возврата - ничто.
CREATE OR REPLACE FUNCTION DELETE_OLD(delete_date IN DATE)
RETURN NUMBER IS
counter NUMBER;
BEGIN
LOOP
DELETE FROM MY_TEST_TABLE WHERE TEST_DATA_LOAD_DATE < delete_date AND ROWNUM <= 100;
counter := counter + SQL%ROWCOUNT;
COMMIT;
EXIT WHEN SQL%ROWCOUNT = 0;
END LOOP;
RETURN counter;
END;
Это то, как я вызываю функцию на sql_plus
SQL> VAR OUT_NUMBER
SQL> call DELETE_OLD(TO_DATE('20-05-2011', 'dd-MM-yyyy')) into :OUT_NUMBER;
и когдаЯ печатаю OUT_NUMBER, ничего не вижу.
Спасибо за помощь!