プライマリ・コンテンツに移動
Oracle® Spatial and Graph開発者ガイド
12cリリース1 (12.1)
B72470-07
目次へ移動
目次
索引へ移動
索引

前
次

4.1 バルク・ロード

バルク・ロードでは、大量のデータをOracle Databaseにインポートできます。バルク・ロードは、SQL*Loaderユーティリティを使用して実行します。(SQL*Loaderの詳細は、『Oracle Databaseユーティリティ』を参照してください。)

4.1.1 SDO_GEOMETRYオブジェクトのバルク・ロード

例4-1は、4つのジオメトリをロードするためのSQL*Loader制御ファイルです。この制御ファイルをSQL*Loaderで使用すると、「空間データの挿入、索引付けおよび問合せの例」例2-1でSQL文を使用して挿入されたコーラのマーケットのジオメトリと同じジオメトリがロードされます。

例4-1 コーラのマーケットのジオメトリをバルク・ロードするための制御ファイル

LOAD DATA
INFILE *
TRUNCATE
CONTINUEIF NEXT(1:1) = '#'
INTO TABLE COLA_MARKETS
FIELDS TERMINATED BY '|'
TRAILING NULLCOLS (
mkt_id INTEGER EXTERNAL,
name CHAR,
shape COLUMN OBJECT
(
SDO_GTYPE INTEGER EXTERNAL,
SDO_ELEM_INFO VARRAY TERMINATED BY '|/'
(elements FLOAT EXTERNAL),
SDO_ORDINATES VARRAY TERMINATED BY '|/'
(ordinates FLOAT EXTERNAL)
)
)
begindata
 1|cola_a|
#2003|1|1003|3|/
#1|1|5|7|/
 2|cola_b|
#2003|1|1003|1|/
#5|1|8|1|8|6|5|7|5|1|/
 3|cola_c|
#2003|1|1003|1|/
#3|3|6|3|6|5|4|5|3|3|/
 4|cola_d|
#2003|1|1003|4|/
#8|7|10|9|8|11|/

例4-1に関する注意は、次のとおりです。

  • mkt_id INTEGER EXTERNAL定義内のEXTERNALキーワードは、MKT_ID列に挿入するそれぞれの値(この例では、1、2、3および4)がバイナリ形式ではなく、人間が判読可能な形式の整数であることを意味します。

  • CONTINUEIF NEXT(1:1) = '#'指定によって、各データ行の先頭が番号記号(#)継続文字でないかぎり無視されるため、begindataの後のデータでは、各MKT_ID値の前に空白が1つあります。

例4-2 ポリゴンのバルク・ロードのための制御ファイル

例4-2では、POLY_4PTという表を次のとおり作成したと想定しています。

CREATE TABLE POLY_4PT (GID VARCHAR2(32),
                       GEOMETRY SDO_GEOMETRY);

ASCIIデータは、デリミタ付きの列および次の書式の表制限で固定されている別々の行で構成されているとします。

geometry rows:    GID, GEOMETRY

GEOMETRY列の座標は、ポリゴンを表現しています。データをロードするための制御ファイルを例4-2に示します。

LOAD DATA 
 INFILE *
 TRUNCATE
 CONTINUEIF NEXT(1:1) = '#'
 INTO TABLE POLY_4PT
 FIELDS TERMINATED BY '|'
 TRAILING NULLCOLS (
  GID  INTEGER EXTERNAL,
  GEOMETRY COLUMN OBJECT 
   (
     SDO_GTYPE       INTEGER EXTERNAL, 
     SDO_ELEM_INFO   VARRAY TERMINATED BY '|/' 
       (elements     FLOAT EXTERNAL), 
     SDO_ORDINATES   VARRAY TERMINATED BY '|/' 
       (ordinates    FLOAT EXTERNAL) 
   )
)
begindata
 1|2003|1|1003|1|/
#-122.4215|37.7862|-122.422|37.7869|-122.421|37.789|-122.42|37.7866|
#-122.4215|37.7862|/
 2|2003|1|1003|1|/
#-122.4019|37.8052|-122.4027|37.8055|-122.4031|37.806|-122.4012|37.8052|
#-122.4019|37.8052|/
 3|2003|1|1003|1|/
#-122.426|37.803|-122.4242|37.8053|-122.42355|37.8044|-122.4235|37.8025|
#-122.426|37.803|/

4.1.2 SDO_GEOMETRYオブジェクトの点のみのデータのバルク・ロード

次の例に、点データを表にロードする制御ファイルを示します。

例4-3 点のみのデータをバルク・ロードするための制御ファイル

LOAD DATA 
 INFILE *
 TRUNCATE
 CONTINUEIF NEXT(1:1) = '#'
 INTO TABLE POINT
 FIELDS TERMINATED BY '|'
 TRAILING NULLCOLS (
  GID      INTEGER EXTERNAL,
  GEOMETRY COLUMN OBJECT 
   (
     SDO_GTYPE       INTEGER EXTERNAL, 
     SDO_POINT COLUMN OBJECT
       (X            FLOAT EXTERNAL, 
        Y            FLOAT EXTERNAL)
   )
)

BEGINDATA
 1| 2001| -122.4215| 37.7862|
 2| 2001| -122.4019| 37.8052|
 3| 2001| -122.426| 37.803|
 4| 2001| -122.4171| 37.8034|
 5| 2001| -122.416151| 37.8027228|