Any reason for needing to drop and recreate the tables repeatedly? To clear the rows? Are they the same tables being dropped everytime ?
If dropping and recreating the same set of tables everytime, you could create a set of custom scripts that have the DROP command before the CREATE for each table. Don't really need to check if they exist since they will be dropped if they are present and if they are not, then there will be an error "ORA-00942: table or view does not exist" but you can ignore it.
For example you can create a script file named create_test1.sql to create table TEST1:
CODE
-- create_test1.sql
-- Drops and recreates table TEST1
DROP TABLE TEST1;
CREATE TABLE TEST1 (
...
);
Then create a master script file named run_create.sql to call all those individual table scripts:
CODE
-- run_create.sql
-- Master script to drop and recreate tables
@create_test1.sql;
@create_test2.sql;
@create_test3.sql;
...
This would allow you to adjust the list to add or remove individual scripts if the list of tables to be recreated changes.
When you are ready, you just run the master script file from SQL*Plus everytime you want to drop and recreate those tables. Let us say all the scripts are in a folder called E:\database\scripts :
CODE
SQL> @E:\database\scripts\run_create.sql