Insertar imágenes en una tabla que contiene una columna ST_Raster

Para insertar datos ráster en una columna de tipo ST_Raster, debe proporcionar una fuente de datos adecuada. A menos que la fuente de datos sea de otra columna ST_Raster, debe convertirse al formato del tipo ST_Raster. La conversión se logra con el constructor ST_Raster.

El constructor ST_Raster acepta dos posibles fuentes de datos: un archivo TIFF o un objeto ST_PixelData.

Abajo se muestran las declaraciones SQL INSERT con las tres posibles fuentes de datos compatibles con cada uno de los tres sistemas de administración de base de datos admitidos.

Insertar valores ráster de una columna ST_Raster en otra

Pasos:
  1. Insertar los resultados de una consulta de columna ST_Raster existente en otra columna ST_Raster.

    Oracle

    INSERT INTO URBAN_AREA (RASTER,NAME)  SELECT RASTER,'BOSTON'  FROM BOSTON_AREA;

    PostgreSQL

    INSERT INTO urban_area (raster)  SELECT raster  FROM boston_area;

    SQL Server

    INSERT INTO urban_area (raster)  SELECT raster  FROM boston_area;

Convertir un valor TIFF en uno ST_Raster

Pasos:
  1. Convertir un archivo TIFF en un tipo ST_Raster con el constructor ST_Raster e insertarlo en una columna ST_Raster.

    Oracle

    INSERT INTO URBAN_AREA  VALUES(SDE.ST_RASTER('C:\milwakee.tif','compression=lz77');

    PostgreSQL

    INSERT INTO urban_area  VALUES (st_raster('C:\milwaukee.tif','compression=lz77));

    SQL Server

    INSERT INTO urban_area  VALUES(st_raster::construct('C:\milwaukee.tif',NULL,'compression=lz77'));   
    PrecauciónPrecaución:

    Asegúrese de que la ruta especificada sea válida para el servidor donde están ubicados la base de datos y el archivo.

Convertir un valor ST_PixelData a uno ST_Raster

Pasos:
  1. Convertir un archivo ST_PixelData en un valor ST_Raster con el constructor ST_Raster e insertarlo en una columna ST_Raster.

    Oracle

    DECLARE data SDE.ST_PIXELDATA; BEGIN SELECT t.raster.getPixelData('level=1') INTO DATA FROM ALANTA t; INSERT INTO URBAN_AREA VALUES (sde.st_raster(data, 'compression=lz77')); END; /

    PostgreSQL

    DROP FUNCTION IF EXISTS insert_pixeldata(); CREATE OR REPLACE FUNCTION insert_pixeldata() RETURNS void AS ' DECLARE data st_pixeldata; BEGIN   SELECT getPixelData(image, 'level=1' )   INTO data   FROM atlanta;  INSERT INTO urban_area  VALUES  (st_raster(data,''compression=lz77'')); END;' LANGUAGE plpgsql; SELECT insert_pixeldata();  DROP FUNCTION IF EXISTS insert_pixeldata();

    SQL Server

    DECLARE @data ST_Pixeldata; SET @data = (SELECT image.getPixelData('level=1') FROM atlanta);  INSERT INTO urban_area  VALUES (ST_Raster::construct(NULL, @data,  'compression=lz77'));

Temas relacionados


7/11/2012