SQL%ROWCOUNT returns:
If the number of rows exceeds the maximum value for a PLS_INTEGER, then SQL%ROWCOUNT returns a negative value.
The following code uses SQL%ROWCOUNT to determine the number of rows that were deleted.
SQL> SQL> drop table emp; Table dropped.-- w w w .j av a2 s .com SQL> CREATE TABLE emp( 2 empid NUMBER(6), 3 first_name VARCHAR2(20), 4 last_name VARCHAR2(25), 5 email VARCHAR2(25), 6 phone_number VARCHAR2(20), 7 hire_date DATE, 8 job_id VARCHAR2(10), 9 salary NUMBER(8,2), 10 commission_pct NUMBER(2,2), 11 manager_id NUMBER(6), 12 department_id NUMBER(4)) ; SQL> SQL> INSERT INTO emp VALUES( 100, 'Steven', 'King', 'SKING', '123.123.4567', TO_DATE('17-JUN-1987', 'dd-MON-yyyy'), 'CODER', 24000, NULL, NULL, 90); SQL> SQL> DROP TABLE emp_temp; Table dropped. SQL> CREATE TABLE emp_temp AS 2 SELECT * FROM emp; SQL> SQL> DECLARE 2 mgr_no NUMBER(6) := 122; 3 BEGIN 4 DELETE FROM emp_temp WHERE manager_id = mgr_no; 5 DBMS_OUTPUT.PUT_LINE 6 ('Number of emp deleted: ' || TO_CHAR(SQL%ROWCOUNT)); 7 END; 8 / Number of emp deleted: 0 PL/SQL procedure successfully completed. SQL>