Workflow: Erstellen von Tabellen mit SQL und Registrieren dieser bei der Geodatabase

Dieses Thema gilt nur für ArcGIS for Desktop Standard und ArcGIS for Desktop Advanced.

Komplexität: Mittelstufe Datenanforderung: Eigene Daten verwenden Ziel: Erstellen von räumlichen sowie nicht räumlichen Tabellen mit SQL und Registrieren dieser bei der Geodatabase.

Sie können mit SQL Tabellen erstellen. Wenn die Tabelle eine räumliche Spalte enthält, wird die Tabelle als räumliche Tabelle betrachtet. Sie können sowohl nicht räumliche als auch räumliche Tabellen mithilfe von SQL mit Daten befüllen. Wenn ArcGIS und die Geodatabase-Funktionalität verwendet werden sollen, können Sie die Tabelle dann bei der Geodatabase registrieren.

Dies ist sinnvoll, wenn Sie eine benutzerdefinierte Anwendung verwenden, um räumliche oder nicht räumliche Tabellen zu erstellen, oder Datenbanktabellen von einer anderen Agentur oder einem anderen Subunternehmer erhalten, jedoch Geodatabase- und ArcGIS-Funktionalität nutzen möchten.

Erstellen einer nicht räumlichen Tabelle mit SQL

Schritte:
  1. Öffnen Sie einen SQL-Client, und melden Sie sich bei der Datenbank als Benutzer mit Berechtigungen an, um Tabellen in der Datenbank zu erstellen.
  2. Erstellen Sie mithilfe der SQL-Anweisung CREATE TABLE die nicht räumliche Tabelle "patients", die Spalten mit den folgenden Namen enthält: PID, f_name, l_name und 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);
    

Hinzufügen von Daten zu einer nicht räumlichen Tabelle mit SQL

Fügen Sie der Tabelle "patients" Datensätze mithilfe der SQL-Anweisung INSERT hinzu.

Schritte:
  1. Fügen Sie vier Datensätze in die Tabelle "patients" ein:

    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);
    

Erstellen einer räumlichen Tabelle mit SQL

Sie können auch eine CREATE TABLE-Anweisung verwenden, um eine Tabelle mit einer räumlichen Spalte zu erstellen.

Schritte:
  1. Erstellen Sie die Tabelle "outbreaks", die Folgendes enthält: OID (Ganzzahl), dwel_id (Ganzzahl), Zeichenfolgenadresse, city_code (Ganzzahl) und eine ST_Geometry-Positionsspalte:

    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);
    

Hinzufügen von Daten zu einer räumlichen Tabelle mit SQL

Fügen Sie drei Datensätze in die Tabelle "outbreaks" ein.

HinweisHinweis:

Die 0 in diesen Beispielanweisungen ist die SRID. Sie können eine andere Zahl angeben.

Schritte:
  1. Verwenden Sie die SQL-Anweisung INSERT und die Funktion "ST_Point", um der Tabelle "outbreaks" Datensätze hinzuzufügen:

    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)
    );
    

Registrieren der Tabellen bei der Geodatabase

Tabellen können Sie mit ArcGIS for Desktop bei der Geodatabase registrieren.

Die folgenden Schritte zeigen die Registrierung bei der Geodatabase in ArcGIS for Desktop:

Schritte:
  1. Starten Sie ArcMap, und öffnen Sie das Fenster Katalog, oder starten Sie ArcCatalog.
  2. Stellen Sie eine Verbindung mit der Enterprise-Geodatabase her, die die zu registrierende Tabelle enthält.

    Diese Verbindung wird unter dem Knoten "Datenbankverbindungen" des Kataloginhaltsverzeichnisses hergestellt. Stellen Sie sicher, dass Sie eine Verbindung als Besitzer der Tabelle herstellen.

  3. Klicken Sie mit der rechten Maustaste auf die Tabelle "patients", und klicken Sie auf In Geodatabase registrieren.
  4. Das PID-Feld wurde als Spalte vom Typ "Integer" ohne Nullwerte definiert, deshalb wird es als ObjectID für die registrierte Tabelle verwendet.
  5. Klicken Sie mit der rechten Maustaste auf die Tabelle "outbreaks", und klicken Sie auf In Geodatabase registrieren.
  6. Für die Felder, die Sie eingefügt haben, wurde ein Raumbezug definiert und nur ein Entitätstyp (Punkte) wurde eingefügt. Deshalb erkennt ArcGIS diese Situation nach Registrierung und verwendet diese Informationen, um die Feature-Class zu definieren. Das OID-Feld, das als Spalte vom Typ "Integer" ohne Nullwerte definiert wurde, wird als ObjectID für die registrierte Feature-Class verwendet.
9/12/2013