Well, I believe you mean to get the data state as it was some time earlier than now. In this case Oracle suggests FLASHBACK QUERIES:
SQL> select * from t where x in (1,2,3);
X Y
---------- ----------
1 1
2 2
3 3
SQL> delete from t where x in (1,2,3);
SQL> commit;
SQL> select * from t where x in (1,2,3);
No rows selected
SQL> select * from t as of timestamp(systimestamp - interval '2' minute) where x in (1,2,3)
2 /
X Y
---------- ----------
1 1
2 2
3 3
Oracle describes this option there
http://docs.oracle.com/cd/B12037_01/appdev.101/b10795/adfns_fl.htm#1008580
As of temporary tables - plese see this reference:
http://docs.oracle.com/cd/B28359_01/server.111/b28310/tables003.htm#ADMIN01503