ST_Raster 列の ST_PixelData の ST_PixelData 列へのフェッチ
ST_Raster の getPixelData 関数を使用して ST_Raster 値から ST_PixelData 値を抽出できます。この値は、ST_Pixeldata 列に挿入することも、ST_PixelData 変数にフェッチすることもできます。
手順:
-
SELECT ステートメントを使用して、ST_PixelData 値を ST_Raster 値から抽出します。
INSERT ステートメントの内側に SELECT ステートメントを置いた場合、抽出した ST_PixelData の結果は指定した列に挿入されます。
以下の例では、第 1 レベルの ST_PixelData 値が urban_area テーブルの ST_Raster 列からフェッチされて、pixels テーブルの pdata という ST_PixelData 列に挿入されます。
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 メソッドを使用して、ST_PixelData 値が urban_area テーブルの ST_Raster 列から 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);
関連項目
3/6/2012