Saltar al contenido

Ejemplo de Force view Oracle

En esta entrada creamos una Force View, este tipo de vistas se suelen utilizan cuando alguna de las tablas no es accesible en alg煤n momento.

En resumidas cuentas, si creamos una vista, Oracle mira los campos y las tablas de la vista para comprobar que existan todos los campos de la tabla. Y si no concuerdan por alguna raz贸n, como que no existan, Oracle nos mostrar谩 un bonito error.

Si no queremos que esto ocurra lo mejor es hacer una Force view que sencillamente se crear谩 sin que Oracle verifique que existen esos campos.

Para hacer esto es tan sencillo como crear una vista normal y a帽adirle la palabra FORCE, quedar铆a as铆:

 
 
CREATE OR REPLACE FORCE VIEW VIEW_EXAMPLE
(
   UIDCIDI,
   UPDRENT,
   DTDINCA,
   HIDCIDI,
   UEDTACI,
   UPDBLAC,
   UCDDPLM,
   UUDIORG,
   DUDIALG,
   DCDUINC,
   DTDPDAN,
   DUDIORG,
   UCDDPET,
   UEDTDAN,
   DCDNTEN,
   UDDCUME,
   XCDMINC,
   XRDSPON
)
AS
   SELECT A.UIDNCIDI,
          A.UPDERENT, 
          A.DTDIINCA, 
          A.HIDNCIDI, 
          A.UEDSTACI, 
          A.UPDOBLAC, 
          D.UCDODPLM, 
          d.UUDNIORG, 
          D.DUDBIALG, 
          A.DCDAUINC, 
          E.DTDIPDAN, 
          A.DUDNIORG, 
          A.UCDODPET, 
          A.UEDSTDAN, 
          C.DCDONTEN, 
          A.UDDOCUME, 
          A.XCDOMINC, 
          A.XRDESPON
     FROM ATINCIDD A,
          ATLINCID B,
          ATPRUEBA C,
          ATPUREBB D,
          ATPURRRE E
    WHERE     A.CAMPO = B.CAMPO2(+)
          AND A.CAMPO3 = C.CAMPO3(+)
          AND A.CAMPO4 = D.CAMPO5(+)
          AND A.CAMPO6 = E.CAMPO7(+);
 
CREATE OR REPLACE PUBLIC SYNONYM VIEW_EXAMPLE FOR VIEW_EXAMPLE;
 
GRANT SELECT ON VIEW_EXAMPLE TO USUARIO_FINAL;

Si te ha sido 煤til el post, me podr铆as dar un +1 , ya sabes que a Google le entusiasman mucho. Gracias!