Claro que por supuesto que se puede hacer esa vista, y cualquier sentencia, incluso Procedimientos, funciones dinamicas.
una solución rápida sería esta:
Esta vista te devuelve el owner y el nombre vista
puedes usar tambien all_tables que te devuelve todas las tablas.
pero te recomiendo que trabajes con vistas.
Código SQL
[-]
select av.owner, av.view_name from all_views av;
Esto lo cargas en un combo o en un dbgrid para que seleccionenla vista con su respectivo owner.
Ahora una solución que se me ocurre seria que hagas un procedimiento almacenado que haga esto que tu dices, y como parametros de entra el nombre de la vista y su owner que te parece.
para hacerlo de forma dinamica. ahi te va este código
Código SQL
[-]PROCEDURE BORRAR_VISTA( MYVISTA IN VARCHAR2)
DECLARE
sqlstr VARCHAR2(50);
tCursor PLS_INTEGER;
RetVal NUMBER;
BEGIN
sqlstr := 'DROP VIEW ' || MYVISTA ; -- AQUI CONSTRUYES TU SQL DINAMICO
tCursor := dbms_sql.open_cursor;
dbms_sql.parse(tCursor, sqlstr, dbms_sql.NATIVE);
RetVal := dbms_sql.execute(tCursor);
dbms_sql.close_cursor(tCursor);
END;
Y AQUI ES TODA LA SOLUCIÓN QUE SE ME OCURRE, COMO VEZ.
TE ADJUNTO UN LINK MUY BUENO SOBRE ORACLE.
http://www.psoug.org/reference/dbms_sql.html <-- sql dinamico
http://www.psoug.org/reference/ <--- indice.
si tienes más dudas al respecto aqui estamos todos para ayudarte a que te sea más sencillo todo.
Saludos cordiales desde Guadalajara, México