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 ArcSDE peut référencer une table ou une classe d'entités unique ou vous pouvez créer des vues pour rassembler des données de plusieurs tables.
Tout utilisateur disposant des autorisations requises peut créer une vue à l'aide de SQL ou de la commande sdetable d'ArcSDE. Par ailleurs, il est possible d'utiliser des vues pour mettre à jour des données si les conditions spécifiques sont remplies. Pour en savoir plus sur les privilèges nécessaires pour créer ou mettre à jour des vues, consultez la documentation IBM Informix Dynamic Server Information Center relative à votre version.
Dans les bases de données Informix, les définitions de vues sont stockées dans la table de catalogue sysviews.
La table de catalogue du système sysviews stocke les informations de vue
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 de catalogue du système sysviews. Par conséquent, vous pouvez interroger la table de catalogue du système sysviews pour connaître la manière dont la base de données est définie.
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 |
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>;