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

Étapes :
  1. 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

Étapes :
  1. 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'));   
    AttentionAttention :

    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

Étapes :
  1. 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'));

Rubriques associées


3/6/2012