Español

Error: No se puede actualizar/restaurar una geodatabase de ArcGIS 10.5.1 /PostgreSQL 9.5 a ArcGIS 10.6/PostgreSQL 9.6 si ST_RASTER está instalado

Descripción

El tipo ST_RASTER de SQL quedó obsoleto a partir de la versión 10.5.1. Sin embargo, actualmente sus ensamblados están presentes en bases de datos de PostgreSQL, ya que el tipo se instaló en la base de datos en una versión anterior. En PostgreSQL, puede que aparezca el siguiente mensaje de error al ejecutar la utilidad pg_restore para restaurar el esquema sde:

[archiver (db)] could not execute query: ERROR:  function sde.subset(sde.st_raster, text, text) does not exist

En la sección Solución que aparece a continuación encontrará un método para eliminar el tipo ST_RASTER y sus funciones de apoyo de la geodatabase.

Causa

El tipo ST_RASTER se instaló en la base de datos en una versión anterior. Este error se produce si el esquema sde contiene el tipo ST_RASTER obsoleto.

 Desconocemos la existencia de informes de errores producidos por la presencia del tipo ST_RASTER en bases de datos de SQL Server u Oracle.

Solución

  1. Realice una copia de seguridad a nivel de sistema de archivos. Consulte la documentación de PostgreSQL para obtener instrucciones:
    Copia de seguridad a nivel de sistema de archivos
  2. Utilice este documento de ArcGIS Desktop para convertir datos ráster del tipo de almacenamiento ST_RASTER al tipo de almacenamiento RASTERBLOB:
    Convertir datos ráster del almacenamiento ST_Raster al RASTERBLOB
  3. Elimine todos los datasets ráster de la base de datos que contengan una columna con el tipo ST_RASTER.
  4. Utilice esta sentencia SQL para verificar que no queden columnas del tipo ST_RASTER en la geodatabase:
select relname from pg_class where oid = (select attrelid from pg_attribute where atttypid = (select oid from pg_type where typname = 'st_raster'))
  1. Conéctese a la base de datos como administrador de la geodatabase y ejecute las sentencias SQL proporcionadas en el archivo adjunto de la sección Información relacionada que aparece a continuación para eliminar el tipo ST_RASTER y las funciones.
    Corte y pegue las sentencias del adjunto en un archivo y ejecútelas como un script en su utilidad SQL de PostgreSQL .
  2. Cree un nuevo archivo de volcado y restáurelo con pg_dump y pg_restore para verificar que es posible realizar la copia de seguridad y restaurar la base de datos sin ningún error.

Información relacionada