Vues dans Informix

La création de vues peut améliorer les délais de réponse aux requêtes en restreignant le nombre de tables et de colonnes lors de la recherche. Vous pouvez créer des vues qui apparaissent sur les applications clientes sous forme de classes d'entités ou de tables non spatiales. Une vue peut référencer une seule table ou classe d'entités ; vous pouvez également créer des vues pour rassembler les données de plusieurs tables.

Tout utilisateur doté des autorisations requises peut créer une vue à l'aide de SQL ou la commande sdetable d'ArcSDE. En outre, les vues peuvent servir à modifier les données si des conditions précises sont remplies. Pour en savoir plus sur les privilèges nécessaires pour créer ou modifier des vues, consultez le centre d'information IBM Informix Dynamic Server approprié à votre version.

Dans les bases de données Informix, les définitions de vue sont stockées dans la table du catalogue sysviews.

La table du catalogue système sysviews stocke des informations sur les vues

Lorsque vous créez des vues dans une base de données Informix à l'aide de SQL ou de la commande sdetable, ces vues sont définies dans la table du catalogue système sysviews. Par conséquent, vous pouvez interroger la table du catalogue système sysviews pour connaître la manière dont chaque vue est définie dans la base de données.

La table de catalogue du système sysviews est composée des colonnes suivantes :

Nom

Type

Description

tabid

entier

Identifiant de la vue

seqno

smallint

Numéro de ligne de l'instruction SELECT qui a créé la vue

viewtext

char(64)

Instruction utilisée pour créer la vue

Table du catalogue de vues Informix

Vous pouvez interroger d'abord la table de catalogue du système systables pour connaître l'ID tabid de la vue que vous souhaitez. La table de catalogue du système systables stocke un enregistrement pour chaque objet de base de données, mais vous pouvez l'interroger uniquement en cas de renvoi de vues, comme illustré dans l'exemple suivant :

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

Une fois la vue dont vous souhaitez connaître la définition trouvée, interrogez la table sysviews.

SELECT * 
FROM informix.sysviews 
WHERE tabid = <view_id>;
5/10/2014