Exemple : Création d'une vue spatiale dans DB2 avec SQL et inscription
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.