Insertion d'images dans une table qui contient une colonne ST_Raster
Pour insérer des données raster dans une colonne raster de type ST_Raster, vous devez fournir une source de données appropriée. A moins que la source de données ne provienne d'une autre colonne ST_Raster, elle doit être convertie au format du type de ST_Raster. La conversion s'effectue avec le constructeur ST_Raster.
Le constructeur ST_Raster accepte deux sources de données possibles : un fichier TIFF ou un objet ST_PixelData.
Vous trouverez ci-dessous les instructions INSERT SQL avec les trois sources de données possibles pour chacun des trois systèmes de gestion de bases de données pris en charge.
Insertion de valeurs de raster d'une colonne ST_Raster dans une autre
-
Insérez les résultats d'une requête d'une colonne ST_Raster existante dans une autre colonne 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;
Conversion d'un fichier TIFF en ST_Raster
-
Convertissez un fichier TIFF en type ST_Raster à l'aide du constructeur ST_Raster et insérez-le dans une colonne 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'));
Attention :Vérifiez que le chemin d'accès spécifié est valide pour le serveur sur lequel la base de données et le fichier se trouvent.
Conversion d'une valeur ST_PixelData en ST_Raster
-
Convertissez une valeur ST_PixelData en valeur ST_Raster à l'aide du constructeur ST_Raster et insérez-la dans une colonne 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'));