Exemple : Création d'une vue spatiale dans DB2 avec SQL et inscription

Complexité : Débutant Exigences relatives aux données : Utilisez vos propres données

Vous pouvez utiliser SQL pour créer une vue spatiale dans une géodatabase ArcSDE en incluant la colonne spatiale dans la définition de la vue. Lorsque vous utilisez SQL pour créer la vue spatiale, vous devez l'inscrire avec ArcSDE pour l'interroger avec ArcGIS et l'afficher en tant que classe d'entités.

Dans cet exemple, une vue spatiale est créée entre la table "employees" et la classe d'entités de régions.

Créer une vue avec une colonne spatiale

Définissez la vue en incluant la colonne spatiale et l'identifiant d'objet de la classe d'entités avec d'autres colonnes d'attributs que vous souhaitez afficher dans la vue.

Le propriétaire de la table "employees" et de la classe d'entités de régions est l'utilisateur gdb. Par conséquent, il possède déjà les privilèges nécessaires pour créer la vue.

db2 => connect to testdb user gdb using gdb.dbg 
   Database Connection Information 
Database server      = DB2 9.5.5 
SQL authorization ID = GDB 
Local database alias = TESTDB

CREATE VIEW emp_region_vw 
AS SELECT (e.emp_name,e.emp_id,r.rname,r.reg_id,r.region)
FROM employees e, region r
WHERE e.emp_id = r.emp_id;

reg_id est la colonne de nombres entiers de valeur non nulle issue de la classe d'entités de régions qui sert d'identifiant de ligne lorsque vous inscrivez la vue avec ArcSDE. "Region" est la colonne spatiale issue de la classe d'entités de régions.

Accorder des privilèges sur la vue spatiale

Une fois la vue créée, accordez des privilèges Select à l'utilisateur "dispatch1". N'oubliez pas d'inclure WITH GRANT OPTION pour permettre à l'utilisateur "dispatch1" d'accorder des privilèges sur la vue à d'autres utilisateurs.

GRANT SELECT
ON emp_region_vw
TO USER dispatch1 WITH GRANT OPTION;

Inscrire la vue en tant que couche avec ArcSDE

Pour interroger la vue spatiale avec ArcGIS, vous devez l'inscrire en tant que couche avec ArcSDE. Cela a pour effet d'ajouter des enregistrements aux tables système LAYERS et GEOMETRY_COLUMNS dans ArcSDE.

Le propriétaire de la vue doit inscrire la couche. Il faut donc fournir le nom d'utilisateur gdb et le mot de passe avec les options - –u et –p.

sdelayer -o register -l emp_region_vw,region -e a 
-t ST_GEOMETRY -C reg_id,USER -E 2.20,2.20,3.01,3.01 
-R 1 -s mydb2server -i sde:db2 -D testdb -u gdb -p gdb.bdg

Les valeurs des options que vous spécifiez, à l'exception de –o, dépendent de vos données.

Pour plus d'informations sur la commande sdelayer, consultez le manuel Administration Command Reference.


3/6/2012