Oracle SQL, how to access latest queries and their data
To count the rows deleted just after the delete statement use SQL%ROWCOUNT.  Here is a demonstration.

--Setup.
drop table t1;
create table t1 as (select level x from dual connect by level &lt;=5);

set serveroutput on size 1000000 format wrapped
DECLARE
   vCount Number(3);
BEGIN
   DELETE FROM T1 WHERE rownum&lt;=2;
   vCount := SQL%ROWCOUNT;  --&lt;&lt;---&lt;&lt;---&lt;&lt;---&lt;&lt;---&lt;&lt;---&lt;&lt;---&lt;&lt;---&lt;&lt;---
   DBMS_Output.Put_Line('RowCount:' || vCount);
END;
/


For your broader question you can look into tracing, auditing, flashback database, flashback query, logminer, materialized views, streams, and change data capture (not necessarily in that order).  We would need more details about what data you need and why before directing you any more specifically.