Copier et coller des données entre des bases de données dans ArcGIS
Vous pouvez copier les données d'une base de données et les coller dans une autre base de données ou une géodatabase via ArcGIS for Desktop.
Lorsque vous déplacez les données d'un type de base de données vers un autre, les types de données utilisés pour les attributs dans votre table peuvent changer. Par exemple, si vous copiez une table de SQL Server qui a un champ UniqueIdentifier, lorsque vous le collez dans une base de données PostgreSQL, il est transformé en Varchar.
Notez qu'ArcGIS ne peut pas coller de types de données ou de définitions qu'il ne prend pas en charge. Cela signifie que la table ou la classe d'entités créée dans votre base de données cible contiendra :
- Les types de données pris en charge par ArcGIS
Les colonnes qui ne peuvent pas être mappées à un type de données ArcGIS ne seront pas créées dans la classe d'entités de la base de données cible. Reportez-vous à la rubrique Types de données SGBD pris en charge dans ArcGIS pour voir la liste des types de données pris en charge.
- Une colonne spatiale
Pour les classes d'entités, la première colonne spatiale détectée est utilisée ; la seconde n'est pas créée dans la classe d'entités cible. Si vous souhaitez utiliser la deuxième colonne spatiale, définissez une vue ou une couche de requête sur la table source qui contient uniquement la deuxième colonne spatiale. Si vous créez une vue, vous pouvez la copier de la base de données source puis la coller dans la base de données cible. Si vous définissez une couche de requête, vous pouvez exporter les données depuis la couche de requête vers une nouvelle classe d'entités dans la base de données cible.
- Un type de géométrie
Si votre classe d'entités source contient plusieurs types de géométrie (points, lignes, polygones, multi-points), ArcGIS utilise le type de géométrie de la première ligne dans la classe d'entités source lorsque vous collez la classe d'entités dans la base de données cible. Si vous souhaitez contrôler le type de géométrie utilisé dans la classe d'entités cible, créez une couche de requête de la classe d'entités source et définissez quel type de géométrie utiliser, puis exportez les données de la couche de requête vers votre base de données cible. Dans ce cas, la classe d'entités créée dans la base de données cible contient uniquement les enregistrements du type de géométrie que vous avez défini pour la couche de requête.
- Une dimensionnalité
Si vous définissez les enregistrements de votre classe d'entités source avec une dimensionnalité différente (xy, xyz, xym, xyzm), ArcGIS utilise la dimensionnalité de la première ligne dans la classe d'entités source ; les enregistrements qui ne correspondent pas à cette dimensionnalité ne sont pas créés dans la classe d'entités cible. Si vous souhaitez spécifier quelle dimensionnalité utiliser dans la classe d'entités cible, créez une couche de requête de la classe d'entités source et définissez la dimensionnalité à utiliser. Exportez ensuite les données de la couche de requête vers la base de données cible. Dans ce cas, tous les enregistrements de la classe d'entités créée dans la base de données cible utilisent cette dimensionnalité. Par exemple, si vous définissez une couche de requête avec des dimensions z (mais pas des dimensions m), les enregistrements qui renfermaient des informations de dimension m dans la classe d'entités source ne les contiendront pas dans la classe d'entités cible. De la même manière, tout enregistrement contenant uniquement des coordonnées x,y dans la classe d'entités source présenteront des coordonnées x,y et z dans la classe d'entités cible (la coordonnée z est définie sur 0).
- Une référence spatiale
Si votre classe d'entités source possède une référence spatiale définie reconnue par ArcGIS, la même référence spatiale est utilisée pour la classe d'entités dans la base de données cible. Si la référence spatiale n'est pas définie pour la classe d'entités, ArcGIS utilise la référence spatiale de la première ligne de la table. Les enregistrements qui ne correspondent pas à cette référence spatiale ne sont pas créés dans la classe d'entités de la base de données cible. En revanche, si la référence spatiale ne peut pas être identifiée pour la table ou la première ligne (par exemple, si une référence spatiale personnalisée est utilisée), la référence spatiale utilisée dans la classe d'entités cible varie en fonction de votre SGBD. Consultez la section « Comment le système de référence spatiale est utilisé dans ArcGIS » dans Références spatiales pour en savoir plus.
Les étapes suivantes expliquent comment déplacer une table, une classe d'entités ou une vue entre bases de données ou d'une géodatabase vers une base de données à l'aide des opérations copier-coller.
- Lancez ArcMap et ouvrez la fenêtre Catalogue.
- Dans l'arborescence du catalogue, établissez des connexions vers la base de données source et la base de données cible.
Veillez à vous connecter à la base de données source en tant qu'utilisateur doté de privilèges pour accéder aux données de la base de données source, puis connectez-vous à la base de données cible en tant qu'utilisateur doté des privilèges de base de données appropriés pour créer des tables.
- Si nécessaire, préparez les données (ou plusieurs colonnes spatiales) à déplacer dans la classe d'entités et déterminez quelles propriétés et colonnes seront créées et ajoutées aux propriétés de la classe d'entités source.
Si vous créez une couche de requête, suivez la procédure permettant de déplacer vos données vers la base de données cible.
- Si vous souhaitez déplacer une classe d'entités dotée d'enregistrements avec une dimensionnalité, des types de géométrie ou des références spatiales différents, faites glisser la table sur la carte et modifiez la couche de requête qui en résulte, en choisissant une dimensionnalité, un type de géométrie ou une référence spatiale. Pour déplacer les données vers la base de données cible, exportez la couche de requête. (Vous ne pouvez pas copier-coller une couche de requête.)
- Si la classe d'entités comporte plusieurs colonnes spatiales, créez une vue de base de données qui inclut une seule des colonnes spatiales et effectuez un copier-coller.
- Cliquez avec le bouton droit sur la table, la classe d'entités ou la vue dans la base de données source, puis cliquez sur Copier.
- Cliquez avec le bouton droit sur la base de données cible dans l'arborescence du catalogue et sélectionnez Coller.
Les données dans la base de données cible sont la propriété du nom de session utilisé pour vous connecter.
Remarque :Pour coller des données dans une base de données PostgreSQL ou SQL Server, l'utilisateur connecté à la base de données cible doit avoir un schéma avec le même nom que le nom d'utilisateur de base de données.
- Si vous déplacez une classe d'entités, la boîte de dialogue Transfert de données s'ouvre afin que vous puissiez choisir le type spatial à utiliser pour la colonne spatiale dans la base de données de destination. Cliquez dans la colonne Mot-clé de configuration, sélectionnez un type spatial dans la liste déroulante, puis cliquez sur OK.
La nouvelle table ou classe d'entités est créée dans votre base de données de destination.