批量删除存储过程

CREATE OR REPLACE PROCEDURE BATCH_DELETE
(
  P_TABLENAME       IN    VARCHAR2,
  P_CONDITION       IN    VARCHAR2,
  P_RESULT    OUT NUMBER
)

AS

BEGIN

       EXECUTE IMMEDIATE
          'DELETE FROM ' || P_TABLENAME || ' WHERE ' || P_CONDITION ;
       IF SQL%NOTFOUND THEN
          P_RESULT :=0;
          --EXIT;
       ELSE

          P_RESULT :=SQL%ROWCOUNT;
       END IF;
       COMMIT;

    DBMS_OUTPUT.PUT_LINE('FINISHED!');
    DBMS_OUTPUT.PUT_LINE('TOTALLY '||TO_CHAR(P_RESULT)||' RECORDS DELETED!');
END;

posted @ 2015-08-03 21:30  Oracle-fans  阅读(927)  评论(0编辑  收藏  举报