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:
-
Definición
Una descripción de la función
-
Sintaxis
La sintaxis adecuada para usar la función
Tenga en cuenta que con los operadores relacionales, es importante el orden en el que se especifican los parámetros: el primer parámetro debe ser para la tabla desde la cual se hace la selección, y el segundo parámetro debe ser para la tabla que se está usando como filtro.
-
Tipo de devolución
Qué tipo de datos se devuelve cuando se emite la función
-
Ejemplo
Una situación de ejemplo sobre el uso de esa función
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.
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.
ST_Curve (solo Oracle) |
ST_GeomCollFromShape (solo PostgreSQL) |
ST_GeomCollFromWKB (solo PostgreSQL) |
ST_GeomFromShape (solo PostgreSQL) |
ST_GeomFromText (solo Oracle) |
ST_LineFromShape (solo PostgreSQL) |
ST_LineFromText (solo Oracle) |
ST_MLineFromShape (solo PostgreSQL) |
ST_MLineFromText (solo Oracle) |
ST_MPointFromShape (solo PostgreSQL) |
ST_MpointFromText (solo Oracle) |
ST_MpolyFromText (solo Oracle) |
ST_MultiCurve (solo Oracle) |
ST_MultiSurface (solo Oracle) |
ST_PointFromShape (solo PostgreSQL) |
ST_PointFromText (solo Oracle) |
ST_PolyFromShape (solo PostgreSQL) |
ST_PolyFromText (solo Oracle) |
ST_Surface (solo Oracle) |
ST_Entity (solo Oracle) |
ST_GeoSize (solo PostgreSQL) |
ST_Is3d (solo Oracle) |
ST_IsMeasured (solo Oracle) |
ST_EnvIntersects (solo Oracle) |
ST_Aggr_ConvexHull (solo Oracle) |
ST_Aggr_Intersection (solo Oracle) |
ST_Aggr_Union (solo Oracle) |
ST_Equalsrs (solo PostgreSQL) |
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:
Funciones de Oracle y SQL Server | Funciones de PostgreSQL |
---|---|
ST_PixelData.getValueByLoc (solo SQL Server) | |
setvalue | |
ST_Raster.getValueByLoc (solo SQL Server) | |
ST_Raster_Util.checkLibraryVersion (solo Oracle) | |
ST_Raster_Util.getLibraryVersion (solo Oracle) | |