Error de compilacion de un Package en Oracle (PLS-201 o PLS-00201)

Un error raro me apareció mientras compilaba un package

ERROR at line 1:
ORA-06552: PL/SQL: Compilation unit analysis terminated
ORA-06553: PLS-201: identifier 'UNDEFINED' must be declared

Este error se da comunmente a package que tienen relacionados una vista, una solución fue reconstruir la vista según lo explicado en un blog ya que las vistas que tenían ‘select *’ eran las que provocavan el problema.

Eectivamente el error desapareció, pero ninguna de mis vistas tienen el ‘select *’ por lo que la razon es otra. Como utilizo SQL Developer para desarrollar en Oracle, me di cuenta que en la definición de las vistas (al ver la lengueta SQL de la vista) guarda además los nombre de los campos de la vista, aun cuando esto se ocupe el ‘select *’, o sea, la vista se define

CREATE OR REPLACE FORCE VIEW "MI_VISTA" ("CAMPO_UNO", "CAMPO_DOS", ...)
AS ...

Si cambias sólo el select de la vista sin reconstruir la vista te aparecerá ese error en los packages relacionados con ella.

Publicado en Base de Datos, Desarrollo, Oracle