Exemple : création d'une vue spatiale dans PostgreSQL à l'aide de SQL
Vous pouvez utiliser SQL pour créer une vue spatiale en incluant la colonne spatiale dans la définition de la vue. Cette opération permet de voir les entités dans ArcMap. Vous pouvez également créer une vue spatiale afin d'utiliser une table contenant plusieurs colonnes spatiales ; votre vue spatiale inclurait une seule colonne spatiale que vous utiliserez avec ArcGIS.
Dans cet exemple, une vue spatiale est créée pour joindre les données de la table des employés et la classe d'entités de régions.
Créer une vue avec une colonne spatiale
Définissez la vue pour inclure la colonne spatiale et ObjectID de la classe d'entités avec les autres colonnes attributaires que vous souhaitez intégrer à la vue.
Le propriétaire de la table des employés et la classe d'entités de régions est l'utilisateur gdb. Par conséquent, l'utilisateur a déjà les privilèges nécessaires pour créer la vue.
Pour créer une vue, l'utilisateur doit bénéficier au moins des privilèges SELECT sur chaque table ou classe d'entités incluse dans la vue.
psql testdb gdb
Enter password for user gdb:
CREATE VIEW emp_region_vw
AS SELECT (
employees.emp_name,employees.emp_id,
hbear.region.rname,
hbear.region.reg_id,
hbear.region.region)
FROM employees, hbear.regions
WHERE employees.emp_id = hbear.regions.emp_id;
L'attribut reg_id est la colonne ObjectID de valeur entière et non nulle provenant de la classe d'entités de régions. Région est la colonne spatiale provenant de la classe d'entités de régions. Les tables sont jointes en fonction de la colonne emp_id.
Accorder des privilèges sur la vue spatiale
Maintenant que la vue existe, accordez des privilèges SELECT à dispatch_mgr. Incluez WITH GRANT OPTION pour permettre à dispatch_mgr d'accorder des privilèges sur la vue à d'autres utilisateurs, groupes ou rôles.
GRANT SELECT
ON gdb.emp_region_vw
TO dispatch_mgr WITH GRANT OPTION;