Un paseo introductorio por las funciones SQL usadas con los tipos ST_Geometry y ST_Raster

El Lenguaje estructurado de consultas (SQL) es un lenguaje estándar que se usa para seleccionar y manipular datos almacenados en un sistema de administración de bases de datos (DBMS). ArcSDE instala funciones SQL y tipos específicos en las geodatabases en Oracle, en PostgreSQL y en Microsoft SQL Server. Puede utilizar SQL y estas funciones y tipos para hacer consultas y editar datos.

Este libro de la ayuda contiene temas para cada una de las funciones implementadas con el tipo espacial ST_Geometry en una geodatabase de ArcSDE en Oracle y en PostgreSQL, y el tipo ST_Raster en Oracle, en PostgreSQL y en SQL Server. Estas funciones se almacenan en el esquema del administrador de ArcSDE (generalmente el usuario sde) y proporcionan operaciones que funcionan con y devuelven información sobre geometrías y rásteres.

Los temas de las funciones tienen la siguiente estructura:

NotaNota:

Las muestras en esta sección no construyen índices espaciales en las tablas creadas. Si desea crear un índice espacial, consulte Crear índices espaciales en tablas con una columna ST_Geometry para obtener las instrucciones.

Para las referencias funcionales de IBM para ST_Geometry, consulte el capítulo 8, "SQL Functions" de la IBM Informix Spatial DataBlade Module User's Guide y los capítulos 22, "Spatial functions: Categories and uses", y 23, "Spatial functions: Syntax and parameters" en la IBM DB2 Spatial Extender and Geodetic Extender User's Guide and Reference.

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.

La forma más fácil de hacer esto es cargar o crear una clase de entidad con los valores de referencia espacial válidos que desea usar con ArcGIS 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. Se consulta la tabla LAYERS (Oracle) o sde_layers (PostgreSQL) para averiguar 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 ejemplos 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.

NotaNota:

el SRID 0 está presente en las geodatabases de ArcSDE en Oracle a partir de ArcGIS 9.3.

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 los ejemplos 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.

Lista de las funciones SQL

Haga clic en los vínculos a continuación para ir a las funciones que puede usar con ST_Geometry en Oracle y en PostgreSQL y con ST_Raster en Oracle, en PostgreSQL y en SQL Server.

A partir de ArcSDE 9.3, cuando utilice las funciones ST_Geometry en una nueva instalación de ArcSDE para Oracle, debe calificar las funciones y los operadores con sde. Por ejemplo, ST_Buffer debería ser sde.ST_Buffer. Al agregar sde. se le indica al software que la función está almacenada en el esquema del usuario sde. Esto es requerido porque Oracle ya no admite los sinónimos públicos que se usaron para asignar las funciones. Para una versión actualizada de ArcSDE para Oracle 10g u Oracle 9i, y ArcSDE para PostgreSQL, la calificación es opcional pero se recomienda incluir el calificador.

Cuando use las funciones ST_Raster en todas las bases de datos, debe calificar la función con el esquema del administrador de ArcSDE. En la mayoría de los casos, esta es sde. Sin embargo, en las bases de datos de SQL Server, puede ser dbo.

Funciones del constructor

ST_Curve (solo Oracle)

ST_GeomCollection

ST_GeomCollFromShape (solo PostgreSQL)

ST_GeomCollFromWKB (solo PostgreSQL)

ST_Geometry

ST_GeomFromShape (solo PostgreSQL)

ST_GeomFromText (solo Oracle)

ST_GeomFromWKB

ST_LineFromShape (solo PostgreSQL)

ST_LineFromText (solo Oracle)

ST_LineFromWKB

ST_LineString

ST_MLineFromShape (solo PostgreSQL)

ST_MLineFromText (solo Oracle)

ST_MLineFromWKB

ST_MPointFromShape (solo PostgreSQL)

ST_MpointFromText (solo Oracle)

ST_MpointFromWKB

ST_MpolyFromText (solo Oracle)

ST_MpolyFromWKB

ST_MultiCurve (solo Oracle)

ST_MultiLineString

ST_MultiPoint

ST_MultiPolygon

ST_MultiSurface (solo Oracle)

ST_Point

ST_PointFromShape (solo PostgreSQL)

ST_PointFromText (solo Oracle)

ST_PointFromWKB

ST_PolyFromShape (solo PostgreSQL)

ST_PolyFromText (solo Oracle)

ST_PolyFromWKB

ST_Polygon

ST_Surface (solo Oracle)

SugerenciaSugerencia:

para los tipos espaciales que no sean ST_Geometry, como el tipo de geometría PostGIS o el tipo SDO_Geometry de Oracle, consulte la documentación de PostGIS u Oracle Spatial, respectivamente, para obtener información sobre las funciones que se usan en cada caso. Puede encontrar la documentación de PostGIS en www.postgis.org. Puede encontrar la documentación de Oracle en el sitio Web de Oracle.

Los nombres de las funciones pueden variar dependiendo de la implementación del DBMS. En Oracle y SQL Server, las funciones son métodos del miembro del objeto ST_Raster o ST_PixelData. En PostgreSQL, son funciones SQL implementadas a nivel del paquete PL/SQL. Tenga en cuenta que debe usar mayúscula o minúscula según se muestre cuando use las funciones con SQL Server. Cuando las use con Oracle o PostgreSQL, no tiene importancia si usa todas minúsculas, todas mayúsculas, o mayúsculas y minúsculas.

Las funciones equivalentes se muestran en la siguiente tabla:


3/6/2012