7.18 SDO_GEOR.exportTo

形式

SDO_GEOR.exportTo(
     georaster     IN SDO_GEORASTER, 
     subsetParam   IN VARCHAR2, 
     r_destFormat  IN VARCHAR2, 
     r_destType    IN VARCHAR2, 
     r_destName    IN VARCHAR2, 
     h_destFormat  IN VARCHAR2 DEFAULT NULL, 
     h_destType    IN VARCHAR2 DEFAULT NULL, 
     h_destName    IN VARCHAR2 DEFAULT NULL);

または

SDO_GEOR.exportTo(
     georaster    IN SDO_GEORASTER, 
     subsetParam  IN VARCHAR2, 
     r_destFormat IN VARCHAR2, 
     r_destBLOB   IN OUT NOCOPY BLOB);

または

SDO_GEOR.exportTo(
     georaster     IN SDO_GEORASTER, 
     subsetParam   IN VARCHAR2, 
     r_destFormat  IN VARCHAR2, 
     r_destBLOB    IN OUT NOCOPY BLOB, 
     h_destFormat  IN VARCHAR2 DEFAULT NULL, 
     h_destCLOB    IN  OUT NOCOPY CLOB DEFAULT NULL);

説明

GeoRasterオブジェクトまたはGeoRasterオブジェクトのサブセットを、ファイルまたはBLOBオブジェクトにエクスポートします。

パラメータ

georaster

エクスポートするGeoRasterオブジェクトを指定します。

subsetParam

サブセット・パラメータを含む文字列(GeoRasterオブジェクトのサブセットのエクスポート用)を指定します。形式および使用方法については「記憶域パラメータ」を参照してください(ただし、その項で示すキーワードの中には、このプロシージャには適用されないものもあります)。サポートされているキーワードは、次のとおりです。

  • pLevel: エクスポートするピラミッド・レベルを指定します。デフォルトは0です。

  • cropArea: cropArea = (startRow, startCol, endRow, endCol)という形式でエクスポートする領域を指定します。これは、エクスポートする矩形ウィンドウの左上の座標(startRowstartCol)と右下の座標(endRowendCol)を識別することで、ラスター空間が想定されます。cropAreaを指定しない場合は、イメージ全体がエクスポートされます。

  • layerNumber: エクスポートするレイヤーのレイヤー番号を指定します。たとえば、layerNumber=(3-5)の場合はレイヤー3、4および5がエクスポートされ、layerNumber=(1,3,5)の場合はレイヤー1、3および5がエクスポートされます。

r_destFormat

ラスターの宛先の形式を指定します。TIFFBMPまたはPNGのいずれかを指定する必要があります。(JPEGおよびGIFは、このプロシージャではサポートされていません。)

r_destType

エクスポート操作の宛先のタイプを指定します。FILEを指定する必要があります。

r_destName

destTypeFILEの場合、宛先ファイル名をフルパスで指定します。ファイル拡張子は指定しないでください。ワールド・ファイルのエクスポートのみにこのプロシージャを使用する場合は、このパラメータにNULL値を指定します。

r_destBLOB

エクスポート操作の結果のイメージ・ファイルを格納するBLOBオブジェクトを指定します。

h_destFormat

ジオヘッダーの宛先の形式を指定します。WORLDFILEを指定する必要があります。

h_destType

エクスポート操作の宛先のジオヘッダー・タイプを指定します。FILEを指定する必要があります。

h_destName

h_destTypeFILEの場合、ジオヘッダーの宛先ファイル名をフルパスで指定します。ファイル拡張子は指定しないでください。

h_destCLOB

エクスポート操作の結果のジオヘッダー・ファイルを格納するCLOBオブジェクトを指定します。

使用上のノート

ノート:

  • SDO_GEOR.exportToサブプログラムは非推奨です。
  • SDO_GEOR.exportToサブプログラムは、サーバーレス・デプロイメントと専用デプロイメントの両方のOracle Autonomous Databaseでサポートされていません。

ラスター・イメージとジオヘッダーが別々のファイルに存在する場合にのみ、r_xxx パラメータとh_xxx パラメータの両方を含む形式を使用してください。

このプロシージャは、宛先ファイル形式としてJPEGまたはGIFをサポートしていません。

このプロシージャは、cellDepth値が2BITのGeoRasterオブジェクトをサポートしていません。

BSQまたはBILインターリーブ形式で8ビット以上のセル深度を持つGeoRasterオブジェクトは、BIPインターリーブ形式でエクスポートされます。

このプロシージャをコールするには、出力ファイルまたはファイルを含めるディレクトリに対する書込み権限が必要です。次の例(ユーザーSYSTEMとして実行)では、指定したファイルに対する書込み権限をユーザーHERMANに付与します。

call dbms_java.grant_permission('HERMAN','SYS:java.io.FilePermission',
   '/mydirectory/myimages/img1.tif', 'write' );

1回の操作でエクスポートできるGeoRasterデータの最大容量は、67メガバイト(MB)です。したがって、1回でエクスポートできるGeoRasterオブジェクトの最大次元は、width*height*bands*cellDepth/8 <= 67 MBおよびrowBlockSize*columnBlockSize*bands*cellDepth/8 <= 67 MBになります。たとえば、widthとheightが等しい、3バンド、8ビットのGeoRasterオブジェクトの場合は次のようになります。

  • エクスポートできる最大のwidthとheightは4728×4728。

  • エクスポートできる最大のブロック次元は4096×4096。

次の例では、2つのエクスポート操作を示します。最初の操作では、GeoRasterオブジェクト全体(地理参照情報以外)をBMP形式のファイルにエクスポートします。2番目の操作では、GeoRasterオブジェクトのサブセットを、ESRIワールド・ファイルを持つファイルにエクスポートします。

DECLARE 
  geor SDO_GEORASTER;
  fileName VARCHAR2(1024);
  tfwName VARCHAR2(1024);
 
BEGIN
 
SELECT georaster INTO geor FROM georaster_table WHERE georid = 1;
 
-- Export the whole GeoRaster object into a BMP file, excluding any
-- georeferencing information.
sdo_geor.exportTo(geor, NULL, 'BMP', 'file',
  '/mydirectory/myimages/img1_export');
 
-- Export a subset to a file with a world file.
fileName := '/mydir/parrotExported';
tfwName := '/mydir/parrotWorldFile';
SELECT georaster INTO geor FROM georaster_table WHERE georid = 8;
sdo_geor.exportTo(geor, 'cropArea=(0,0,500,500)', 
  'TIFF', 'file', fileName, 'WORLDFILE', 'FILE', tfwName);
 
END;
/

次の例では、GeoRasterオブジェクトをBLOBオブジェクトおよびCLOBオブジェクトにエクスポートします。

CREATE TABLE blob_table (blob_col BLOB, blobid NUMBER unique, clob_col CLOB);
INSERT INTO blob_table values (empty_blob(), 3, null);
INSERT INTO blob_table VALUES (empty_blob(), 4, empty_clob());
 
DECLARE
  lobd1 BLOB;
  lobd2 BLOB;
  lobd3 CLOB; 
  geor1 SDO_GEORASTER;
  geor2 SDO_GEORASTER;
 
BEGIN
 
-- Example 1: Export to BLOB.
SELECT blob_col INTO lobd1 FROM blob_table WHERE blobid=3 for update;
SELECT georaster INTO geor1 FROM georaster_table WHERE georid = 13;
sdo_geor.exportTo(geor1, '', 'TIFF', lobd1);
UPDATE blob_table set blob_col = lobd1 WHERE blobid=3;
COMMIT;
 
-- Example 2: Export GeoRaster to BLOB with world file exported to CLOB.
SELECT blob_col INTO lobd2 FROM blob_table WHERE blobid=4 for update;
SELECT clob_col INTO lobd3 FROM blob_table WHERE blobid=4 for update;
SELECT georaster INTO geor2 FROM georaster_table WHERE georid = 8;
sdo_geor.exportTo(geor2, 'cropArea=(0,0,500,500)', 'TIFF', lobd2,
  'WORLDFILE', lobd3);
UPDATE blob_table set blob_col = lobd2, clob_col = lobd3 WHERE blobid = 4;
COMMIT;
 
END;
/