将 ST_PixelData 从 ST_Raster 列提取到 ST_PixelData 列中
可以使用 ST_Raster getPixelData 函数从 ST_Raster 值提取 ST_PixelData 值。该值可以插入 ST_Pixeldata 中或者可以提取到 ST_PixelData 变量中。
步骤:
-
使用 SELECT 语句从 ST_Raster 提取 ST_PixelData 值。
如果在 INSERT 语句中加入 SELECT 语句,那么提取出的 ST_PixelData 结果将被插入到指定的列中。
在下面的示例中,第一级的 ST_PixelData 值从 urban_area 表的 ST_Raster 列提取出来,并插入到像素表的 ST_PixelData 列的 pdata 中。
Oracle
INSERT INTO PIXELS (pdata) SELECT t.raster.getPixelData('level=1') FROM URBAN_AREA t WHERE t.raster.raster_id = 1;
PostgreSQL
INSERT INTO pixels (pdata) SELECT getPixelData(raster,'level=1') FROM urban_area WHERE raster_id(raster) = 1;
SQL Server
INSERT INTO pixels (pdata) SELECT raster.getPixelData('level=1') FROM urban_area WHERE raster.raster_id = 1;
在这些示例中,使用 ST_Raster getPixelData 方法从 urban_area 表的 ST_Raster 列将 ST_PixelData 提取到 ST_PixelData 变量中。
Oracle
DECLARE p sde.st_pixeldata; BEGIN SELECT t.raster.getPixelData() INTO p FROM URBAN_AREA t WHERE t.raster.rasterid = 1; END; /
PostgreSQL
DROP FUNCTION IF EXISTS fetch_pixeldata(); CREATE OR REPLACE FUNCTION fetch_pixeldata() RETURNS integer AS ' DECLARE p st_pixeldata; BEGIN SELECT getPixelData(raster) INTO p FROM urban_area WHERE raster_id(raster) = 1; END;' LANGUAGE plpgsql; SELECT edit_pixeldata(); DROP FUNCTION IF EXISTS fetch_pixeldata();
SQL Server
DECLARE @p ST_PIXELDATA; SET @p = (SELECT raster.getPixelData(NULL) FROM urban_area WHERE raster.raster_id = 1);
相关主题
7/10/2012