Un recorrido rápido por el uso de SQL con los tipos ST_Geometry y ST_Raster
You can use the database management system's (DBMS) Structured Query Language (SQL), data types, and table formats to work with the information stored in a geodatabase. SQL is a database language that supports data definition and data manipulation commands.
Accessing the information in a geodatabase via SQL allows external applications to work with the tabular data managed by the geodatabase. These external applications can be nonspatial database applications or custom spatial applications developed in an environment other than ArcObjects.
You can issue SELECT statements against any of the supported DBMS types for geodatabases, as well as against file-based data sources. The topics About building a SQL expression and SQL reference provide you with information about building SELECT statements for different data sources.
Be aware that using SQL to access the geodatabase bypasses geodatabase functionality, such as versioning, topology, networks, terrains, feature-linked annotation, or other class or workspace extensions. It may be possible to use DBMS features such as triggers and stored procedures to maintain the relationships between tables needed for certain geodatabase functionality. However, executing SQL commands against the database without taking this extra functionality into account—for example, issuing INSERT statements to add records to a business table or adding a column to an existing feature class—will circumvent geodatabase functionality and possibly corrupt the relationships between data in your geodatabase.
In general, the following guidelines apply when using SQL to modify information in the 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.
The preceding guidelines apply to any attribute, spatial or nonspatial. This book of the help focuses on using SQL for spatial selections, altering data, and altering the properties of data stored in the ST_Geometry and ST_Raster data storage types.
El tipo de almacenamiento ST_Geometry
The ST_Geometry SQL data type is used in geodatabases stored in DB2, Informix, Oracle, and PostgreSQL. This data type can be used within the geodatabase plus it provides SQL access to simple feature class geometry for third-party applications.
ST_Geometry implements the OGC and ISO SQL Multimedia Specification for Spatial. The OGC reference is OpenGIS Implementation Specification for Geographic information —Simple feature access—Part 2: SQL option, version 1.1.0. The ISO reference is ISO/IEC 13249-3 SQL multimedia and application packages—Part 3: Spatial.
For information on using SQL with the ST_Geomery type in DB2 or Informix, consult the IBM DB2 and Informix documentation. For information on using SQL with the ST_Geometry type in Oracle and PostgreSQL, see the subsequent section.
The "Using spatial types with SQL" section of this help does contain some examples for DB2 and Informix; however, for complete information on using ST_Geometry with these databases, read the IBM documentation.
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 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