Exemple : Création d'une vue spatiale dans Oracle 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.
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 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 dans 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 dispatch1 WITH GRANT OPTION;
Inscrire la vue en tant que couche dans 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 myodbserver -i sde:oracle11g:ora1 -u gdb -p gdb.bdg
La colonne spatiale de régions dans la vue utilise le stockage ST_GEOMETRY et stocke les polygones ; par conséquent, ST_GEOMETRY est spécifié avec l'option –t et une surface est spécifiée avec l'option –e. Les valeurs que vous spécifiez pour ces options et toutes les autres, à l'exception de –o, dépendent de vos données.
Pour plus d'informations sur la commande sdelayer, consultez le manuel Administration Command Reference.