Migration de géométrie d'un type de stockage vers un autre à l'aide de commandes ArcSDE
Vous pouvez modifier le stockage de géométries utilisé dans une classe d'entités d'une géodatabase dans Oracle ou Microsoft SQL Server en utilisant l'opération migrate avec la commande sdelayer. L'opération migrate modifie le stockage de géométries de la classe d'entités vers le stockage de géométries défini dans le mot-clé de configuration DBTUNE spécifié avec l'option –k.
Il est important que le mot clé soit créé correctement pour inclure le paramètre et la valeur corrects. Si vous indiquez un mot clé avec des informations inexactes ou manquantes, les informations sont lues à partir du mot-clé DEFAULTS. Pour cette raison, Esri recommande de créer un mot-clé personnalisé spécifiquement pour la migration et de s'assurer que le mot clé contient le paramètre et la valeur vers lesquelles vous effectuez la migration des données, ainsi qu'un paramètre UI_TEXT. Le paramètre UI_TEXT rend le mot clé disponible pour utilisation par les clients ArcGIS.
La syntaxe pour la commande sdelayer avec l'opération migrate est la suivante :
sdelayer –o migrate –l <table,column> –k <config_keyword> [–i {<service> | <direct_connect>}] [–s <server>] -D [<database_name>] –u <user_name> [–p <user_password>] [–N] [–q]
Utilisez les options comme suit :
Options |
Description |
---|---|
–D | Utilisez cette option pour spécifier le nom de la base de données. Cette option ne peut pas être utilisée pour les bases de données Oracle. |
–o |
Cette option indique l'opération qui est effectuée ; dans ce cas, migrate. |
–l |
Utilisez cette option pour spécifier le nom de la table métier de la classe d'entités et le nom de la colonne de forme pour laquelle vous effectuez une migration du type de géométrie. Les deux noms sont séparés par une virgule (aucun espace). |
–k |
Cette option désigne le mot-clé de configuration DBTUNE pour le type de stockage de géométries vers lequel vous effectuez la migration de la classe d'entités. Le mot-clé doit contenir un jeu de paramètres GEOMETRY_STORAGE défini sur SDELOB ou ST_GEOMETRY dans les bases de données Oracle ou GEOMETRY ou GEOGRAPHY dans les bases de données SQL Server. |
–i |
Utilisez cette option pour fournir la syntaxe de connexion directe, le numéro de port ou le nom du service ArcSDE que vous utilisez pour vous connecter à la géodatabase. Reportez-vous à la rubrique Connexions directes à partir de commandes ArcSDE à une géodatabase dans Oracle ou Connexions directes à partir de commandes ArcSDE à une géodatabase dans SQL Server pour connaître la syntaxe de connexion directe. |
–s |
Utilisez cette option pour spécifier le nom du serveur sur lequel réside la base de données. |
–u |
Utilisez cette option pour spécifier le nom du propriétaire de la classe d'entités devant se connecter à la base de données. |
–p |
Utilisez cette option pour spécifier le mot de passe de l'utilisateur. |
–N |
Spécifiez cette option si vous souhaitez supprimer l'invite pour confirmer l'opération. |
–q |
Spécifiez cette option si vous souhaitez supprimer tous les titres et avertissements. |
Vous recevrez un message d'erreur lorsque vous exécutez la commande sdelayer avec l'opération migrate si l'une des conditions suivantes est vérifiée :
- Les données sont stockées en précision de base.
- L'utilisateur spécifié avec l'option –u n'est pas le propriétaire de la table.
- Le type de stockage existant de la classe d'entités est identique au mot-clé DBTUNE spécifié (En d'autres termes, la table utilise déjà le type de stockage que vous avez spécifié avec le mot-clé ; par conséquent, aucune migration n'est nécessaire.)
- La table métier ne contient pas de champ d'identifiant d'objet.
- Vous essayez d'utiliser l'opération migrate dans une géodatabase ArcSDE antérieure à la version 9.2.
- Vous essayez d'utiliser l'opération migrate dans un SGBD autre qu'Oracle ou SQL Server.
- Vous essayez d'effectuer la migration d'une classe d'entités SDO_Geometry qui contient des entités 3D. Etant donné qu'Oracle Spatial ne prend pas en charge la génération de valeurs WKB ou de texte connu à partir d'une géométrie spatiale Oracle 3D, la migration de ces données ne peut pas être effectuée à l'aide de la commande sdelayer.
Comme l'indique le premier point, vous devez d'abord effectuer la migration de la classe d'entités en passant d'une précision de base à une précision élevée avant de pouvoir effectuer la migration du stockage de géométries. Pour cela, vous pouvez utiliser la commande sdelayer avec l'opération alter ou l'outil de géotraitement Mettre à jour une référence spatiale.
Lors de la migration de types de stockage de données dans une base de données Oracle à l'aide de l'opération migrate, un nouveau segment est créé dans la base de données vers laquelle les données sont copiées. Une fois que la migration est terminée, les métadonnées sont redirigées vers le nouveau segment et l'ancien est supprimé. Cela signifie qu'à un moment pendant la migration, il y a deux exemplaires des données. Par conséquent, la base de données doit avoir suffisamment d'espace pour stocker les deux exemplaires.
-
Créez une sauvegarde des données à migrer.
En créant une copie de sauvegarde des données que vous migrez, vous disposerez toujours des données d'origine en cas d'échec de la migration.
- Ouvrez une invite de commande DOS (Windows) ou shell (UNIX ou Linux).
-
Exécutez la commande sdelayer avec l'opération migrate. Par exemple :
sdelayer –o migrate –l colpts,geometry –k ST_GEOMETRY –i 68910 –s mainserver –u bjar –p mine.all.min
Veillez à spécifier un mot-clé de configuration qui contienne la valeur GEOMETRY_STORAGE dans laquelle vous souhaitez convertir les données.