these staging tables are used to hold temporary data i.e data with in the temporary table will be automatically get deleted when we issue commit or when we close oracle session that depends on how we create table
eg: create global temporary table eg1(name varchar2(20) num number(10)) on commit delete rows;
this will delete the rows on temporary table when we issue a commit at sql prompt.
moreover these staging tables are used to do some primray validations before inserting data into actual tables.
so we need data to be erased after inserting into acutal tables. so we go for staging tables.
we can use normal tables also as staging table but we need to truncate table for each insert. thats why we go for temporary tables.