Vistas en Informix

Crear vistas puede mejorar los tiempos de respuesta de las consultas al restringir el número de tablas y columnas en las que se busca cuando se realiza un pedido de datos. Puede crear vistas que aparecen en las aplicaciones del cliente como clases de entidades o tablas no espaciales. Una vista ArcSDE puede hacer referencia a una tabla o clase de entidad simple, o puede crear vistas para unir datos desde varias tablas.

Todo usuario que cuente con los permisos necesarios puede crear una vista mediante SQL o mediante el comando sdetable de ArcSDE. Además, las vistas se pueden utilizar para editar datos si cumplen con requisitos específicos. Para obtener información acerca de los privilegios necesarios para crear o editar vistas, consulte el Centro de información de servidor dinámico IBM Informix para su versión.

En las bases de datos de Informix, las definiciones de las vistas se almacenan en la tabla de catálogo sysviews.

La tabla de catálogo del sistema sysviews almacena información de vistas

Al crear vistas en una base de datos de Informix con SQL o el comando sdetable, éstas se definen en la tabla de catálogo del sistema sysviews. Por lo tanto, puede consultar la tabla de catálogo del sistema sysviews para descubrir cómo se define cada vista en la base de datos.

La tabla de catálogo del sistema sysviews posee las siguientes columnas:

Nombre

Tipo

Descripción

tabid

entero

Id. de la vista

seqno

smallint

Número de línea de la declaración SELECT que creó la vista

viewtext

char(64)

Declaración utilizada para crear la vista

Tabla de catálogo de vistas de Informix

Primero puede consultar la tabla de catálogo del sistema systables para encontrar el tabid de la vista que desea. La tabla de catálogo del sistema systables almacena un registro para cada objeto de base de datos, pero puede consultarlo sólo para obtener las vistas, como se ilustra en el siguiente ejemplo:

SELECT *  FROM informix.systables  WHERE tabtype = 'V';

Cuando encuentra la vista de la que desea ver una definición, consulte la tabla sysviews.

SELECT *  FROM informix.sysviews  WHERE tabid = <view_id>;

3/6/2012