Flujo de trabajo: Crear tablas con SQL y registrarlas con la geodatabase

Este tema se aplica a ArcGIS for Desktop Standard y ArcGIS for Desktop Advanced exclusivamente.

Complejidad: Intermedio Requisito de datos: Utilizar datos propios Objetivo: Crear tablas espaciales y no espaciales con SQL, luego registrarlas con la geodatabase.

Puede usar SQL para crear tablas. Si la tabla contiene una columna espacial, se considera que es una tabla espacial. Puede usar SQL para completar las tablas espaciales y no espaciales con datos. Después, para utilizar la funcionalidad de geodatabase y de ArcGIS, puede registrar la tabla con la geodatabase.

Puede hacer esto si usa una aplicación personalizada para crear tablas espaciales o no espaciales, o recibir tablas de bases de datos de una agencia o contratista, pero quiere aprovechar la funcionalidad de geodatabase y de ArcGIS.

Crear una tabla no espacial con SQL

Pasos:
  1. Abra un cliente SQL e inicie sesión en la base de datos como usuario con permisos para crear tablas en la base de datos.
  2. Utilice una declaración SQL CREATE TABLE para crear una tabla no espacial, patients, que contenga columnas con los nombres siguientes: PID, f_name, l_name, y 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);
    

Agregar datos a una tabla no espacial con SQL

Utilice las declaraciones SQL INSERT para agregar registros a la tabla de pacientes con SQL.

Pasos:
  1. Inserte cuatro registros en la tabla de pacientes:

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

Crear una tabla espacial con SQL

También puede usar una declaración CREATE TABLE para crear una tabla con una columna espacial.

Pasos:
  1. Cree una tabla, outbreaks (enfermedades), que contenga un OID entero, un dwel_id entero, una dirección de cadena, un city_code entero, y una columna de ubic 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);
    

Agregar datos a una tabla espacial con SQL

Inserte tres registros a la tabla de enfermedades.

NotaNota:

El 0 equivale al SRID en estos ejemplos de muestra. Usted debería especificar un número diferente en la práctica.

Pasos:
  1. Utilice las declaraciones SQL INSERT y la función ST_Point para agregar registros a la tabla de enfermedades:

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

Registrar las tablas con la geodatabase

Puede usar ArcGIS for Desktop para registrar una tabla con la geodatabase.

El siguiente conjunto de pasos describe el proceso de registro con la geodatabase en ArcGIS for Desktop:

Pasos:
  1. Inicie ArcMap y abra la ventana Catálogo o inicie ArcCatalog.
  2. Conéctese a la geodatabase corporativa que contiene la tabla que desea registrar.

    Esta conexión se realiza en el nodo Conexiones de base de datos del árbol de catálogo. Asegúrese de conectarse como propietario de la tabla.

  3. Haga clic con el botón derecho en la tabla patients y haga clic en Registrar con geodatabase.
  4. EL campo PID se definió como una columna de entero no nulo, así que se utiliza como el ObjectID para su tabla registrada.
  5. Haga clic con el botón derecho en la tabla outbreaks y haga clic en Registrar con geodatabase.
  6. Una referencia espacial se definió para los campos que insertó y solamente se insertó un tipo de entidad (puntos), así que ArcGIS detecta esto en el momento del registro y utiliza esa información para definir la clase de entidad. EL campo OID se definió como una columna de entero no nulo, así que se utiliza como el ObjectID para su clase de entidad registrada.
5/10/2014