Solución:
No es posible. Tendrá que recrear la vista proporcionando su definición completa. También tenga en cuenta que ni siquiera puede CREAR O REEMPLAZAR VISTA cuando cambia los tipos de columnas. Si tiene vistas que dependen de la vista que cambia, tendrá que DROP / CREATE también.
En mi empresa utilizamos la estrategia en la que todo lo que se puede recrear en una base de datos (como vistas, funciones, etc.) se almacena en un montón de archivos SQL grandes que ejecutamos cada vez que algo cambia en las estructuras de la tabla subyacente, por lo que no lo hacemos. tener que cuidar las opiniones dependientes.
La parte de vista en estos archivos es básicamente como:
DROP VIEW IF EXISTS vw_a CASCADE;
CREATE OR REPLACE VIEW vw_a AS
...;
DROP VIEW IF EXISTS vw_b_depending_on_a CASCADE;
CREATE OR REPLACE VIEW vw_b_depending_on_a AS
...;
Por supuesto, la segunda CASCADE y OR REPLACE parecen inútiles, pero hacen posible copiar y pegar definiciones cambiadas fácilmente en una base de datos de desarrollo en ejecución sin pensarlo mucho.