Un recorrido rápido por el uso de SQL con los tipos ST_Geometry y ST_Raster
Puede utilizar formatos de tablas, tipos de datos y Lenguaje estructurado de consultas (SQL) del sistema de administración de bases de datos (DBMS) para trabajar con la información almacenada en una geodatabase. 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.
Puede emitir declaraciones SELECT contra cualquiera de los tipos de DBMS compatibles con las geodatabases, como también contra las fuentes de datos basadas en archivos. Los temas Acerca de la creación de una expresión SQL y Referencia SQL proporcionan información sobre la creación de declaraciones SELECT para diferentes fuentes de datos.
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 usa SQL para modificar información en la geodatabase:
- No actualice los registros con SQL después de que los datos se hayan versionado, a menos que use SQL junto con una vista multiversionada.
- Al actualizar datos no versionados con SQL, no modifique ningún atributo que afecte a otros objetos en la base de datos con el comportamiento de la geodatabase, tal como clases de relación, anotación vinculada a entidad o topología.
- Emita una declaración COMMIT o ROLLBACK después de que se haya ejecutado la declaración SQL para asegurarse de que los cambios se confirman en la base de datos o se deshacen.
Las pautas anteriores se aplican a cualquier atributo, espacial o no espacial. Este libro de ayuda se enfoca en el uso de SQL para selecciones espaciales, y la alteración de datos y propiedades de los datos almacenados en tipos de almacenamiento de datos ST_Geometry y ST_Raster.
El tipo de almacenamiento ST_Geometry
El tipo de datos SQL ST_Geometry se usa en las geodatabases almacenadas en DB2, Informix, Oracle y PostgreSQL. Este tipo de datos puede usarse dentro de la geodatabase 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: SQL option. 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 la siguiente sección.
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.
Usar funciones SQL con ST_Geometry en Oracle y PostgreSQL
Para acceder, analizar y manipular datos con SQL, debe utilizar las funciones instaladas con ArcSDE.
Estas funciones pueden agruparse según el uso.
-
Funciones que prueban relaciones espaciales
Estas funciones toman geometrías como entrada y determinan si existe una relación específica entre las geometrías. Si se cumplen las condiciones de relación espacial, estas funciones devuelven 1 o t para TRUE. Si no se cumplen las condiciones (no existen relaciones), estas funciones devuelven 0 o f para FALSE. Consulte Relaciones espaciales para obtener una descripción de cada una de estas funciones.
-
Funciones que realizan operaciones espaciales
Estas funciones toman datos espaciales, realizan análisis basado en estos y devuelven datos espaciales nuevos. Para una descripción de estas funciones, consulte Operaciones espaciales.
-
Funciones que devuelven las propiedades de una geometría
Existe una cantidad de funciones que toman una o varias geometrías con entrada y devuelven información específica sobre las geometrías. Se describen en Propiedades de geometría. Algunas de estas funciones realmente comprueban si una entidad o varias entidades cumplen ciertos criterios. Si la geometría cumple con los criterios, la función devuelve 1 o t para TRUE. Si la geometría no cumple con los criterios, devuelve 0 o f para FALSE. Estas funciones incluyen lo siguiente:ST_EqualSRS (solo PostgreSQL), ST_Is3d (solo Oracle), ST_IsClosed, ST_IsEmpty, ST_IsMeasured (solo Oracle), ST_IsRing, ST_IsSimple y ST_OrderingEquals.
-
Funciones que crean datos espaciales o realizan transformaciones espaciales
Estas funciones toman un tipo de geometría o una descripción de geometría y devuelven una geometría de un tipo diferente. Una de estas funciones, ST_Transform, altera realmente la referencia espacial de una geometría en Oracle desde una referencia espacial en el dato geográfico a otra referencia espacial en el mismo dato geográfico. Las funciones para crear geometría a partir de otro tipo de geometría o una descripción de texto se enumeran en la siguiente tabla:
ST_LineFromShape (solo PostgreSQL)
ST_MPolyFromShape (solo PostgreSQL)
ST_PointFromText (solo Oracle)
ST_LineFromText (solo Oracle)
ST_MPolyFromText (solo Oracle)
ST_Curve (solo Oracle)
ST_PolyFromShape (solo PostgreSQL)
ST_MultiCurve (solo Oracle)
ST_PolyFromText (solo Oracle)
ST_GeomCollFromShape (solo PostgreSQL)
ST_MLineFromShape (solo PostgreSQL)
ST_GeomCollFromWKB (solo PostgreSQL)
ST_MLineFromText (solo Oracle)
ST_Surface (solo Oracle)
ST_GeomFromShape (solo PostgreSQL)
ST_MPointFromShape (solo PostgreSQL)
ST_MultiSurface (solo Oracle)
ST_GeomFromText (solo Oracle)
ST_MPointFromText (solo Oracle)
ST_PointFromShape (solo PostgreSQL)
El tipo de almacenamiento ST_Raster
Puede usar el tipo de datos ST_Raster en las geodatabases de ArcSDE. Este tipo de datos puede usarse dentro de la geodatabase y, además, proporciona acceso SQL a datos ráster para aplicaciones de terceros.
El tipo ST_Raster está disponible en las geodatabases de ArcSDE en Oracle, en PostgreSQL y en Microsoft SQL Server.
Se usan dos categorías diferentes de las funciones ST_Raster para acceder al tipo ST_Raster con SQL:
- Métodos ST_Raster y ST_PixelData
- Procedimientos almacenados ST_RasterUtil
Funciones ST_Raster y ST_PixelData
Estos son métodos que crean instancias y funcionan con el objeto ST_Raster.
Utilidades del procedimiento almacenado ST_RasterUtil
Los procedimientos almacenados ST_RasterUtil admiten la creación y el mantenimiento del tipo ST_Raster. Las funciones disponibles son las siguientes:
ST_RasterUtil_checkLibraryVersion