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
- 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
- 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'));
Convertir un valor ST_PixelData a uno ST_Raster
- 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'));