7.102 SDO_GEOR.importFrom

形式

SDO_GEOR.importFrom(
     georaster      IN OUT SDO_GEORASTER, 
     storageParam   IN VARCHAR2, 
     r_sourceFormat IN VARCHAR2, 
     r_sourceType   IN VARCHAR2, 
     r_sourceName   IN VARCHAR2, 
     h_sourceFormat IN VARCHAR2 DEFAULT NULL, 
     h_sourceType   IN VARCHAR2 DEFAULT NULL, 
     h_sourceName   IN VARCHAR2 DEFAULT NULL);

または

SDO_GEOR.importFrom(
     georaster      IN OUT SDO_GEORASTER, 
     storageParam   IN VARCHAR2, 
     r_sourceFormat IN VARCHAR2, 
     r_sourceBLOB   IN BLOB, 
     h_sourceFormat IN VARCHAR2 DEFAULT NULL, 
     h_sourceCLOB   IN CLOB DEFAULT NULL);

説明

イメージ・ファイルまたはBLOBオブジェクトを、データベースに格納されたGeoRasterオブジェクトにインポートします。

パラメータ

georaster

操作の結果を格納するGeoRasterオブジェクトを指定します。

storageParam

記憶域パラメータを含む文字列を指定します。形式および使用方法については「記憶域パラメータ」を参照してください。この操作で現在サポートされているキーワードは、次のとおりです。

  • blocking: (「記憶域パラメータ」表1-1の説明を参照してください。)

  • blocksize: (「記憶域パラメータ」表1-1の説明を参照してください。)

  • compression: (「記憶域パラメータ」表1-1の説明を参照してください。)デフォルト値はNONEで、RAWデータは圧縮せずにロードされます。

  • quality: (「記憶域パラメータ」表1-1の説明を参照してください。)

  • raster: TRUE (デフォルト)を指定すると、GeoTIFF形式ファイルのラスター・イメージ・データが地理参照情報とともにロードされます。FALSEを指定すると、GeoTIFF形式ファイルからラスター・イメージ・データを除く地理参照情報のみが既存のGeoRasterオブジェクトにロードされます。

  • spatialExtent: デフォルトのFALSEを指定すると、空間エクステントが生成されません。TRUEを指定すると、SRIDが0 (ゼロ)以外で、既存のいずれかの空間エクステント索引のSRIDと一致した場合に空間エクステントが生成されます。

r_sourceFormat

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

r_sourceType

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

r_sourceName

r_sourceTypeFILEの場合、ソース・ファイル名をフルパスで指定します。既存のGeoRasterオブジェクトへのワールド・ファイルのロードのみに、このプロシージャを使用する場合は、このパラメータにNULL値を指定します。

r_sourceBLOB

ラスターのBLOB型のソース・オブジェクトを指定します。

h_sourceFormat

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

h_sourceType

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

h_sourceName

h_sourceTypeFILEの場合、ジオヘッダーのソース・ファイル名をフルパスで指定し、オプションでSRID値を指定します。SRID値を指定するには、ファイル名の後をカンマで区切り、SRID値を追加します。たとえば、'/mypath/mydir/worldfile.tfw,82934' (UNIXまたはLinuxの場合)や、'C:\mypath\mydir\worldfile.tfw,82934' (Windowsの場合)のようになります。

h_sourceCLOB

ジオヘッダーのソースをCLOB型のオブジェクトとして指定します。

使用上のノート

ノート:

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

このプロシージャの使用方法、またはGeoRasterローダー・ツールを使用してラスター・データをロードする方法の詳細は、「ラスター・データのロード」を参照してください。

非常に大きいイメージをロードする際にメモリー不足のエラーが発生した場合は、「ロード前のソース・ラスターの再フォーマット」を参照してください。

イメージをGeoRasterデータベースにロードする場合、常にブロック・サイズを指定する必要があります。通常512x512以上を指定する必要があります。

ラスター・イメージとジオヘッダーが別々のファイルまたはオブジェクトに存在する場合にのみ、名前の先頭にr_が付くパラメータおよびh_が付くパラメータに値を指定してください。

このプロシージャを使用すると、ファイルまたはCLOBオブジェクトから、ESRIワールド・ファイルをロードできます。

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

このプロシージャは、セル深度値が2BITのラスター・データ、またはBILおよびBSQインターリーブ・タイプのソース・マルチバンド・ラスター・データをサポートしていません。

インポートされたGeoRasterオブジェクトは、BIPインターリーブ・タイプになります。

このプロシージャをコールする前に、コールしているユーザーおよびMDSYSユーザーには、インポートするファイルおよびファイルを含むディレクトリの読取り権限が必要です。次の例(ユーザーSYSTEMとして実行)では、ファイルに対する読取り権限をユーザーHERMANおよびMDSYSに付与します。

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

次の例では、TIFF形式の外部イメージをインポートする空のGeoRasterオブジェクトを初期化して、イメージをインポートします。例では、最初に必要な権限を付与し、最後に取り消します。

connect / as sysdba

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

connect herman/<password>

DECLARE   
   geor SDO_GEORASTER;
BEGIN  
-- Initialize an empty GeoRaster object into which the external image
-- is to be imported. 
INSERT INTO georaster_table
   values( 1, 'TIFF', sdo_geor.init('rdt_1') );  

-- Import the TIFF image. 
SELECT georaster INTO geor FROM georaster_table 
   WHERE georid = 1 FOR UPDATE; 
sdo_geor.importFrom(geor, 'blocking=OPTIMALPADDING,blocksize=(512,512,3)', 'TIFF', 'file', 
   '/mydirectory/myimages/img1.tif');  
UPDATE georaster_table SET georaster = geor WHERE georid = 1;  
COMMIT;
END;/

connect / as sysdba

call dbms_java.revoke_permission('HERMAN','SYS:java.io.FilePermission',
  '/mydirectory/myimages/img1.tif', 'read' );
call dbms_java.revoke_permission('MDSYS','SYS:java.io.FilePermission',
  '/mydirectory/myimages/img1.tif', 'read' );

次の例では、BLOBからイメージを、CLOBからESRIワールド・ファイルをインポートします。イメージおよびESRIワールド・ファイルは、表blob_tableに定義されているBLOBおよびCLOB列に格納されています。

CREATE TABLE blob_table (blob_col BLOB, blobid NUMBER unique, clob_col CLOB);

DECLARE
  geor1 SDO_GEORASTER;
  lobd1 BLOB;
  lobd2 CLOB; 
BEGIN

-- Get the image and world file from BLOB and CLOB, respectively.
SELECT clob_col into lobd2 from blob_table WHERE blobid = 2 ;
SELECT blob_col into lobd1 from blob_table WHERE blobid = 2 ;
 
-- Then, import this BLOB into a GeoRaster object.
SELECT georaster INTO geor1 from georaster_table WHERE georid = 14 for update;
sdo_geor.importFrom(geor1,'', 'TIFF', lobd1, 'WORLDFILE', lobd2);
sdo_geor.setModelSRID(geor1, 82394);
UPDATE georaster_table SET georaster = geor1 WHERE georid = 14;
COMMIT; 
END;
/