Example:
DECLARE
curid NUMBER;
str VARCHAR2(200);
exeid NUMBER;
tabname varchar2(20):='&a';
BEGIN
curid:=DBMS_SQL.OPEN_CURSOR;
str := 'DROP TABLE '||tabname; DBMS_SQL.PARSE(curid,str,dbms_sql.native); exeid :=DBMS_SQL.EXECUTE (curid);
DBMS_SQL.CLOSE_CURSOR(curid);
END;
That coding block accepts the tablename and drops the table name.