SDO_GEOMETRY カラムおよび関連するDDL操作の作成をサポートします。
空間列を持つテーブルの作成
例:
test_tbl1 という名前のテーブルを作成します。このテーブルには、以下の3つの列が含まれます:
id:これはNUMBERタイプの列で、主キーとして使用されます。name:これはVARCHAR2(32)タイプの列で、最大長32文字の文字列を格納するために使用されます。shape:これはSDO_GEOMETRYタイプの列で、空間幾何学的図形のデータを格納するために使用されます。
CREATE TABLE test_tbl1 (id NUMBER PRIMARY KEY, name VARCHAR2(32), shape SDO_GEOMETRY);
GIS型データの挿入
SDO_GEOMETRYコンストラクタを使用して、GISオブジェクトのインスタンスを作成できます。
例:
以下のステートメントを使用して、テーブル test_tbl1 に1行のデータを挿入します。具体的な挿入データは以下のとおりです:
id列の値は1です。name列の値はname1です。shape列の値は、多角形を記述するSDO_GEOMETRYオブジェクトです。SDO_GEOMETRYのコンストラクタパラメータは以下のとおりです:2003:多角形タイプを表します。NULL:空間参照識別子が指定されていないことを表します。NULL:点座標が与えられていないことを表します。SDO_ELEM_INFO_ARRAY(1,1003,1):幾何図形の幾何要素情報を表します。最初のパラメータの1はSDO_ORDINATE_ARRAYの最初のメンバから始まることを示し、2番目のパラメータの1003は多角形の外輪を表し、3番目のパラメータの1は直線接続を表します。SDO_ORDINATE_ARRAY(10,105, 15,105, 20,110, 10,110, 10,105):幾何図形の具体的な座標値を表し、多角形の頂点座標を表します。頂点座標は順に (10,105), (15,105), (20,110), (10,110), (10,105) です。
INSERT INTO test_tbl1 VALUES(1, 'name1',
SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1,1003,1), SDO_ORDINATE_ARRAY(10,105, 15,105, 20,110, 10,110, 10,105))
);
GISフィールド情報のクエリ
例:
以下のステートメントを使用して、テーブル test_tbl1 から shape 列の情報を選択します。
obclient [SYS]> SELECT shape FROM test_tbl1;
実行結果は次のとおりです:
+----------------------------------------------------------------------------------------------------------------------------------+
| SHAPE |
+----------------------------------------------------------------------------------------------------------------------------------+
| SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARRAY(10, 105, 15, 105, 20, 110, 10, 110, 10, 105)) |
+----------------------------------------------------------------------------------------------------------------------------------+
1 row in set
スペース列の追加/削除
ALTER TABLE ステートメントを使用して、既存のテーブルにスペース列を追加したり、スペース列を削除したりすることもできます。
例:
スペース列を追加します。
ALTER TABLE test_tbl2 ADD shape SDO_GEOMETRY;スペース列を削除します。
ALTER TABLE test_tbl2 DROP COLUMN shape;
関連ドキュメント
- テーブル作成の構文の詳細については、CREATE TABLEを参照してください。
- テーブル変更の構文の詳細については、ALTER TABLEを参照してください。
- スペースデータ型の詳細については、スペースデータ型の概要を参照してください。
- スペースデータ型データの表示方法の詳細については、SDO_GEOMETRYプロパティへのアクセスを参照してください。