Las funciones SQL de ST_Geometry y ST_Raster en Oracle usan bibliotecas compartidas a las que se accede a través del agente de procedimiento externo de Oracle o extproc. Oracle debe poder acceder a los archivos de la biblioteca física para que pueda realizar cualquiera de las siguientes tareas:
- Ejecutar funciones de ST_Geometry o ST_Raster SQL desde clientes SQL.
- Acceder a las columnas XML de ArcSDE en las vistas del sistema de la geodatabase GDB_ITEMS_VW y GDB_ITEMRELATIONSHIPS_VW.
- Definir una capa de consulta en ArcMap o ArcGIS Pro que ejecute funciones SQL en columnas de ST_Geometry.
- Identificar entidades en vistas de base de datos desde ArcMap o ArcGIS Pro.
- Registrar tablas que contengan columnas de ST_Raster como versionadas.
- Utilizar un cliente de ArcGIS para eliminar una fila que incluya una columna de ST_Raster.
Debe configurar el marco de procedimiento externo de Oracle para llamara a las bibliotecas y realizar estas tareas.
En la mayoría de los casos, tendrá instalado el tipo ST_Raster, por lo que debería poder acceder a él con SQL. Por eso, las instrucciones para configurar extproc de Oracle para que funcione con ST_Raster se incluyen en el tema de instalación de ST_Raster. En este tema se trata la configuración de extproc para ST_Geometry.
Antes de configurar extproc de Oracle, siga estos pasos:
- Si su instancia de Oracle no tiene acceso a las ubicaciones de instalación de ArcGIS Server o ArcMap indicadas anteriormente, descargue las bibliotecas o cópielas desde el equipo cliente de ArcGIS en un directorio del equipo de Oracle. Asegúrese de copiar la biblioteca correcta para su sistema operativo Oracle.
- Las herramientas de geoprocesamiento Crear tipo espacial, Crear geodatabase corporativa y Habilitar geodatabase corporativa definen una ruta predeterminada para la biblioteca ST_SHAPELIB. Conéctese a la instancia de Oracle como usuario SDE desde un cliente SQL y ejecute el siguiente SQL para ver la ruta que está definida actualmente para la biblioteca ST_SHAPELIB:
SELECT file_spec FROM user_libraries WHERE library_name = 'ST_SHAPELIB';
Si la ruta obtenida no coincide con la ubicación del archivo de la biblioteca ST_Geometry, tendrá que volver a crear la biblioteca después de configurar extproc.
Configure extproc.ora de Oracle para que apunte a la ubicación del archivo de la biblioteca ST_Geometry.
- Realice una copia de seguridad del archivo extproc.ora en el servidor de Oracle.
- Abra el archivo extproc.ora y modifíquelo para que apunte a la ubicación de la biblioteca st_shapelib.dll (Windows) o libst_shapelib.so (Linux o UNIX).
En este ejemplo, no hay ningún cliente de ArcGIS instalado en el servidor de Oracle Windows, así que st_shapelib.dll se ha copiado en un directorio llamado mylibraries en el equipo Oracle. La línea siguiente se agrega a extrproc.ora para que apunte a la biblioteca ST_Geometry en ese directorio:
SET EXTPROC_DLLS=ONLY:C:\\mylibraries\\st_shapelib.dll
Si está utilizando las bibliotecas ST_Geometry y ST_Raster, puede colocar entradas para ambas en una línea:
SET EXTPROC_DLLS=ONLY:C:\\mylibraries\\st_shapelib.dll;C:\\mylibraries\\libst_raster_ora.dll
En este ejemplo en un servidor Linux o UNIX, se agrega la línea siguiente para que señale la biblioteca ST_Geometry del directorio esrilibs del usuario, que se creó en el servidor de Oracle para almacenar la biblioteca:
SET EXTPROC_DLLS=ONLY:/user/esrilibs/libst_shapelib.so
Si está utilizando las bibliotecas ST_Geometry y ST_Raster, puede colocar entradas para ambas en una línea:
SET EXTPROC_DLLS=ONLY:/user/esrilibs/libst_shapelib.so:/user/esrilibs/libst_raster_ora.so
- Guarde y cierre el archivo extproc.ora.
- Si cambió la ubicación predeterminada del archivo de la biblioteca ST_Geometry o si no se definió ninguna ubicación, cree o vuelva a crear la biblioteca ST_SHAPELIB en la base de datos de Oracle.
En este ejemplo, la biblioteca ST_SHAPELIB está definida en el directorio mylibraries de un servidor de Oracle Windows donde se ubicó el archivo st_shapelib.dll.
CREATE or REPLACE LIBRARY ST_SHAPELIB AS 'C:\mylibraries\st_shapelib.dll';
- Si volvió a crear la biblioteca, vuelva a compilar el paquete sde.st_geometry_shapelib_pkg.
ALTER PACKAGE sde.st_geometry_shapelib_pkg COMPILE REUSE SETTINGS;
- Cualquier cliente que necesite tener acceso a las bibliotecas (servicios Web incluidos) debe volver a conectarse a la base de datos.