Un recorrido rápido por el uso de SQL con ST_Geometry

Puede utilizar Lenguaje estructurado de consultas (SQL), tipos de datos y formatos de tablas del sistema de administración de bases de datos (DBMS) para trabajar con la información almacenada en una geodatabase o en una base de datos en la que el ST_Geometry esté instalado. SQL es un lenguaje de base de datos que es compatible con los comandos de definición y manipulación de datos.

Al acceder a la información en una geodatabase a través de SQL, las aplicaciones externas pueden trabajar con los datos tabulares que administra la geodatabase. Estas aplicaciones externas pueden ser aplicaciones de bases de datos no espaciales o aplicaciones espaciales personalizadas desarrolladas en un entorno diferente a ArcObjects.

PrecauciónPrecaución:

tenga en cuenta que el uso de SQL para acceder a la geodatabase omite la funcionalidad de la geodatabase, como versionada, topología, redes, terrenos, anotación vinculada a entidad u otras clases o extensiones de espacio de trabajo. Podría ser posible usar las entidades del DBMS como desencadenadores y los procedimientos almacenados para mantener las relaciones entre las tablas que son necesarias para ciertas funcionalidades de geodatabase. Sin embargo, al ejecutar comandos SQL existentes contra la base de datos sin tener en cuenta esta funcionalidad adicional (p. ej., al emitir declaraciones INSERT para agregar registros a una tabla de negocios o agregar una columna a una clase de entidad existente) se sorteará la funcionalidad de la geodatabase y, posiblemente, se dañarán las relaciones entre los datos de su geodatabase.

En general, las siguientes pautas se aplican cuando se usa SQL para modificar datos espaciales o no espaciales en una geodatabase:

El tipo de almacenamiento ST_Geometry

El tipo de datos SQL ST_Geometry se usa en las bases de datos IBM DB2, Informix, Oracle y PostgreSQL. La base de datos puede contener una geodatabase, pero no es un requisito.

El tipo de datos ST_Geometry se puede utilizar con los clientes de ArcGIS y, además, proporciona acceso SQL a geometría de clase de entidad simple para aplicaciones de terceros.

ST_Geometry implementa el OGC y la especificación SQL Multimedia de ISO para datos espaciales. La referencia OGC es OpenGIS Implementation Specification for Geographic information —Simple feature access—Part 2: opción SQL, versión 1.1.0. La referencia ISO es ISO/IEC 13249-3 SQL multimedia and application packages—Part 3: Spatial.

Para obtener información sobre el uso de SQL con el tipo ST_Geometry en DB2 o Informix, consulte la documentación de IBM DB2 e Informix. Para obtener información sobre el uso de SQL con el tipo ST_Geometry en Oracle y PostgreSQL, consulte los temas en esta sección de la ayuda de usuarios de ArcGIS.

SugerenciaSugerencia:

la sección "Usar tipos espaciales con SQL" de esta ayuda contiene algunos ejemplos para DB2 e Informix; sin embargo, para obtener la información completa sobre el uso de ST_Geometry con estas bases de datos, lea la documentación de IBM.

Id. de referencia espacial

Para poder crear una geometría e insertarla en una tabla, debe tener un Id. de referencia espacial válido (SRID) para utilizar. Para el tipo espacial para Oracle, el SRID debe estar en la tabla ST_SPATIAL_REFERENCES y tener un registro que coincida en la tabla SDE.SPATIAL_REFERENCES. Para el tipo espacial para PostgreSQL, debe estar en la tabla public.sde_spatial_references. A partir de ArcGIS 10.1, estas tablas se llenan con referencias espaciales.

Si necesita utilizar una referencia espacial personalizada que no está en la tabla, la forma más sencilla de hacerlo es cargar o crear una clase de entidad con los valores de referencia espacial válidos que desea utilizando ArcGIS for Desktop. Asegúrese de que la clase de entidad creada usa el almacenamiento ST_Geometry. Puede crear una clase de entidad vacía con la información de referencia espacial que necesita como plantilla. Esto crea un registro en las tablas SDE.SPATIAL_REFERENCES y ST_SPATIAL_REFERENCES en Oracle o un registro en la tabla public.sde_spatial_references en PostgreSQL. Consulte la tabla LAYERS (Oracle) o sde_layers (PostgreSQL) para descubrir el SRID asignado a la capa. Luego, puede usar el SRID cuando cree tablas espaciales e inserte datos con SQL.

Con el fin de usar los muestras en este sistema de ayuda, se ha agregado un registro a las tablas ST_SPATIAL_REFERENCES y sde_spatial_references para denotar una referencia espacial desconocida. Este registro tiene un SRID igual a 0. Puede usar este SRID para los ejemplos en la ayuda. Este no es un SRID oficial, se proporciona con el fin de dar un ejemplo de código SQL. Se recomienda no usar este SRID para los datos de producción.

Si decide usar un valor de SRID diferente que ya está presente en la base de datos para hacer estos ejemplos, debe cambiar las coordenadas de las muestras para que reflejen la referencia espacial de su valor SRID.

Si desea agregar una referencia espacial a la tabla ST_SPATIAL_REFERENCES o sde_spatial_references con SQL, consulte Crear referencias espaciales con SQL.

Temas relacionados

9/11/2013