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:
-
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:
-
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ó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:
-
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
3/6/2012