Disponible avec une licence Standard ou Advanced.
Vous pouvez utiliser SQL pour créer des tables. Si la table contient une colonne spatiale, la table est considérée comme table spatiale. Vous pouvez utiliser SQL pour renseigner les tables spatiales et non spatiales avec des données. Une fois la table créée, vous pouvez l'inscrire auprès de la géodatabase afin qu'elle participe à la fonctionnalité de géodatabase.
Vous pouvez procéder ainsi si vous utilisez une application personnalisée pour créer des tables spatiales ou non spatiales ou pour recevoir des tables de base de données d'une autre agence ou d'un prestataire, mais que vous voulez bénéficier des avantages des fonctionnalités de géodatabase et d'ArcGIS.
De même, vous pouvez utiliser SQL pour définir des vues dans des tables spatiales et non spatiales. Si la définition de la vue comprend une colonne d'entiers qui contient des valeurs uniques pouvant être utilisées en tant qu'IdObjet, vous pouvez inscrire la vue auprès de la géodatabase. L'inscription d'une vue vous permet de stocker des informations sur le contenu de la vue (l'étendue et le type de géométrie, par exemple) et de définir des métadonnées dans la vue.
Ce workflow vous guide dans le processus de création d'une table non spatiale et spatiale à l'aide d'un client SQL, d'ajout de données aux tables et d'inscription des tables auprès de la géodatabase.
Créer une table non spatiale avec SQL
- Ouvrez un client SQL et connectez-vous à la base de données en tant qu'utilisateur avec les autorisations requises pour créer des tables dans la base de données.
- Utilisez une instruction CREATE TABLE pour créer une table non spatiale, nommée patients, qui contient des colonnes avec les noms suivants : PID, f_name, l_name et dwel_id.
Oracle
CREATE TABLE patients (PID integer NOT NULL, f_name nvarchar2(25), l_name nvarchar2(38), dwel_id integer);
PostgreSQL
CREATE TABLE patients (PID integer NOT NULL UNIQUE, f_name varchar(25), l_name varchar(38), dwel_id integer);
DB2
CREATE TABLE patients (PID integer NOT NULL, f_name varchar(25), l_name varchar(38), dwel_id integer);
Informix
CREATE TABLE patients (PID integer NOT NULL, f_name varchar(25), l_name varchar(38), dwel_id integer);
Ajouter des données à une table non spatiale avec SQL
Utilisez les instructions INSERT SQL pour ajouter des enregistrements à la table patients avec SQL.
- Insérez quatre enregistrements dans la table patients :
Oracle
INSERT INTO PATIENTS (PID, f_name, l_name, dwel_id) VALUES (1, 'wolfgang', 'bruker', 4301); INSERT INTO PATIENTS (PID, f_name, l_name, dwel_id) VALUES (2, 'ida', 'pastens', 4301); INSERT INTO PATIENTS (PID, f_name, l_name, dwel_id) VALUES (3, 'ricardo', 'montoya', 1001); INSERT INTO PATIENTS (PID, f_name, l_name, dwel_id) VALUES (4, 'tukufu', 'endel', 9601);
PostgreSQL
INSERT INTO patients (PID, f_name, l_name, dwel_id) VALUES (1, 'wolfgang', 'bruker', 4301); INSERT INTO patients (PID, f_name, l_name, dwel_id) VALUES (2, 'ida', 'pastens', 4301); INSERT INTO patients (PID, f_name, l_name, dwel_id) VALUES (3, 'ricardo', 'montoya', 1001); INSERT INTO patients (PID, f_name, l_name, dwel_id) VALUES (4, 'tukufu', 'endel', 9601);
DB2
INSERT INTO PATIENTS (PID, f_name, l_name, dwel_id) VALUES (1, 'wolfgang', 'bruker', 4301); INSERT INTO PATIENTS (PID, f_name, l_name, dwel_id) VALUES (2, 'ida', 'pastens', 4301); INSERT INTO PATIENTS (PID, f_name, l_name, dwel_id) VALUES (3, 'ricardo', 'montoya', 1001); INSERT INTO PATIENTS (PID, f_name, l_name, dwel_id) VALUES (4, 'tukufu', 'endel', 9601);
Informix
INSERT INTO patients (PID, f_name, l_name, dwel_id) VALUES (1, 'wolfgang', 'bruker', 4301); INSERT INTO patients (PID, f_name, l_name, dwel_id) VALUES (2, 'ida', 'pastens', 4301); INSERT INTO patients (PID, f_name, l_name, dwel_id) VALUES (3, 'ricardo', 'montoya', 1001); INSERT INTO patients (PID, f_name, l_name, dwel_id) VALUES (4, 'tukufu', 'endel', 9601);
Créer une table spatiale avec SQL
Vous pouvez également utiliser une instruction CREATE TABLE pour créer une table avec une colonne spatiale.
- Créez une table, nommée outbreaks, qui contient un nombre entier OID, un nombre entier dwel_id, une chaîne d'adresse, un nombre entier city_code et une colonne loc ST_Geometry :
Oracle
CREATE TABLE outbreaks (OID integer NOT NULL, address nvarchar2(120), city_code integer, loc sde.st_geometry);
PostgreSQL
CREATE TABLE outbreaks (OID integer NOT NULL UNIQUE, address varchar(120), city_code integer, loc sde.st_geometry);
DB2
CREATE TABLE outbreaks (OID integer NOT NULL, address nvarchar2(120), city_code integer, loc st_geometry);
Informix
CREATE TABLE outbreaks (OID integer NOT NULL UNIQUE, address varchar(120), city_code integer, loc st_geometry);
Ajouter des données à une table spatiale avec SQL
Insérez trois enregistrements dans la table outbreaks.
- Utilisez des instructions SQL INSERT et la fonction ST_Point pour ajouter des enregistrements à la table outbreaks :
Oracle
INSERT INTO OUTBREAKS (OID, address, city_code, loc) VALUES (1, '1420 kirchestrasse', 43, sde.st_geometry (0.00003, 0.00051, null, null, 4326) ); INSERT INTO OUTBREAKS (OID, address, city_code, loc) VALUES (2, '638 villa arbol', 10, sde.st_geometry (0.00020, -0.00029, null, null, 4326) ); INSERT INTO OUTBREAKS (OID, address, city_code, loc) VALUES (3, '5579 riverview dr', 96, sde.st_geometry (-0.00048, -0.00009, null, null, 4326) );
PostgreSQL
INSERT INTO outbreaks (OID, address, city_code, loc) VALUES (1, '1420 kirchestrasse', 43, sde.st_point (0.00003, 0.00051, null, null, 4326) ); INSERT INTO outbreaks (OID, address, city_code, loc) VALUES (2, '638 villa arbol', 10, sde.st_point (0.00020, -0.00029, null, null, 4326) ); INSERT INTO outbreaks (OID, address, city_code, loc) VALUES (3, '5579 riverview dr', 96, sde.st_point (-0.00048, -0.00009, null, null, 4326) );
DB2
INSERT INTO OUTBREAKS (OID, address, city_code, loc) VALUES (1, '1420 kirchestrasse', 43, st_point (0.00003, 0.00051, null, null, 0) ); INSERT INTO OUTBREAKS (OID, address, city_code, loc) VALUES (2, '638 villa arbol', 10, st_point (0.00020, -0.00029, null, null, 0) ); INSERT INTO OUTBREAKS (OID, address, city_code, loc) VALUES (3, '5579 riverview dr', 96, st_point (-0.00048, -0.00009, null, null, 0) );
Informix
INSERT INTO outbreaks (OID, address, city_code, loc) VALUES (1, '1420 kirchestrasse', 43, st_point (0.00003, 0.00051, null, null, 0) ); INSERT INTO outbreaks (OID, address, city_code, loc) VALUES (2, '638 villa arbol', 10, st_point (0.00020, -0.00029, null, null, 0) ); INSERT INTO outbreaks (OID, address, city_code, loc) VALUES (3, '5579 riverview dr', 96, st_point (-0.00048, -0.00009, null, null, 0) );
Inscrire les tables dans la géodatabase
Vous pouvez inscrire une table auprès de la géodatabase dans ArcGIS Desktop.
La procédure suivante décrit l'inscription auprès de la géodatabase dans ArcGIS Desktop :
- Ouvrez l'outil Inscrire dans une géodatabase.
Vous pouvez rechercher l'outil ou l'ouvrir dans le jeu d'outils Administration de géodatabase de la boîte à outils Gestion des données. Dans l'arborescence du Catalogue d'ArcMap, vous pouvez également cliquer avec le bouton droit sur la table ou vue sous la connexion à une base de données et sélectionner Inscrire dans une géodatabase.
- Démarrez un client ArcGIS Desktop et connectez-vous à la géodatabase d'entreprise qui contient la table ou la vue à inscrire.
Connectez-vous en tant que propriétaire de la table ou vue, car seul le propriétaire peut l'inscrire auprès de la géodatabase.
- Cliquez avec le bouton droit sur la table patients, puis cliquez sur Inscrire dans la géodatabase.
- Cliquez avec le bouton droit sur la table outbreaks, puis cliquez sur Inscrire dans la géodatabase.